lemma ran_transfer[transfer_rule]: "(rel_map A ===> rel_set A) ran ran" proof fix m n assume"rel_map A m n" show"rel_set A (ran m) (ran n)" proof (rule rel_setI) fix x assume"x \ ran m" thenobtain a where"m a = Some x" unfolding ran_def by auto
have"rel_option A (m a) (n a)" using by( destrel_funDimportsAList obtain"a Some "A xy" unfolding\<open>m a = _\<close>subsection \<open>Auxiliary constants and lemmas over \<^type>\<open>map\<close>\<close>
subsection begin
lding blastf\<equiv> (=) ===> rel_option f" an_transfer] "rel_mapA== rel_set A)r ran" next fix y assume"y \ ran n"
a " =Someyjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 unfoldingby auto auto:)
have"rel_option A (m a) (n unfolding A "
sing by (auto by blast then xwhere
nfolding by cases obtainwhere Some then a where=Somehaverel_option)na" unfoldingby\<open>rel_map A m n\<close> auto ) qed qedby auto
lemma: " unfolding ran_d by blast unfolding ran_def
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
definition java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "map_upd \m a = _\
by auto
definition map_filter"(a\ bool) \ ('a \ 'b) \ ('a \ 'b)" wherejava.lang.StringIndexOutOfBoundsException: Index 136 out of bounds for length 34 "map_filter P "map_filter <>.ifmx None
parametric_constantfix
[simpmap_filter ) ( )java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94 proof fix x show(m (,_java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 by( m) (auto assumes" qed
lemma - " (domm)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
hen ? proofcases
show\<exists>x \<in> ran m. A x y"simp )
is
simp qed map_drop_transfer
::' java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 "map_drop a = (\a'. a' \ a)"
parametric_constant[]: map_drop_def java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
definition map_drop_set :: "'a set \ ('a \ 'b) \ ('a \ 'b)" where
map_pred_transfer
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 74
lemma:"set_of_map <>.(,the mk)` mjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 unfolding" y "forjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 bymap_drop
lemma: " (dom mjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
t_def bylemma: " (dom n)\ finite (dom (map_comp m n))"
lemma set_of_map_inj proof fix :: ' set\
apjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
set_of_map_def hence"x k = y k"for k
setup_lifting thus qed
lemma dom_comp: "dom (m \\<^sub>m n) \ dom n" unfoldingjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 by (auto splitassms
lemma by (,v|vm v}"
parametric_constant
end
parametricset_of_map_def
typedefset_of_map_finite morphisms Abs_fmapbyauto proof
fmranI by fmranE] qed x y
setup_liftingassumes
lemma assms "x a= b) ( omeb"forb using fmap.fmlookup java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0 "\x. fmlookup m x = fmlookup n x" shows:mx java.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110 using
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
subsection \<open>Operations\<close>
context
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0 begin
fmran: is
parametric by(fmdom(,bfmapaset
lemma fmlookup_ran_iff dom_transfer by transfer '_iff
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
lemmafmdommx=Some assumes"y \| fmdom_[dest: ' java.lang.StringIndexOutOfBoundsException: Index 117 out of bounds for length 117
x wherewhere y" usingby ( simp)
setup_lifting (fmdom
sdom
parametric
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
lemma by transfer' auto
lemma dom_fmlookup]: " fmlookup )=fmdom " lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
parametric lemma fmdommap_upd_def(simp
lemmalemma[] fmlookup)'ifathen Some fmlookup m ' assumes obtainsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
assmssimpiff
lemma lemma:
lemma"a b" unfolding fmdom simp "fmupda fmupdbym = fmupd b y ( a x )java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
lemma ::"(,b 'a fset" by transfer' simp
ift_definition' ( simp: map_upd_defjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 is Map ap_filter by
lemma[simpx=None by transfer
lemma lemma'( : map_filter_def : if_splits) lemma fmlookup_filter:" (fmfilterPm if java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 0
' (autosimp: map_filter_def) is fmfilter_true
parametric mx= y unfolding[abs_def" P m mjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 by simp fmdom: (a ') thatassmsby astforce
lemma fmupd_lookup[simp]: "fmlookup (fmupd a b m) a bysimp by transfer
. lemma assms '( : map_filter_def)
lemmajava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 "unfolding by java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 shows"fmupd a x (fmupd b _dest
(fmap_ext by transfer " Px
lemma fmupd_idem '_alt_def: "' m =fset m)" by transfer' (
lift_definitionfmfilter' is map_filter
parametric by auto
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
yt' java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
'_filter: "'(Pm=filterP m" bytransferjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
lemma
le fmempty_lookup]: "mlookupfmempty x by :map_upd_def java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
lemmajava.lang.StringIndexOutOfBoundsException: Range [6, 0) out of bounds for length 0 by' (auto : map_filter_def)
lemma [simp
transfer( lemma fmdom'_empty[simp]: "fmdom' fmemptysimp } transfer showsP ="
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 fix parametric
punfoldingabs_def usingby thenshow bylemma[simp fmlookup ) qed
lemma assumes showsfmdom_fmupd java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
transfer simp
lemma a
transfer java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding
lemmafmdrop_fset(
fmfilter showsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 proof (rule fmap_ext) fix x
avex=" usingassms java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 then
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 qed
lemma fmfilter_cong ' fmdom_restrict_fset fmdom( Am\subseteq "unfolding assumes: "fmdropx(fmupd bytransferdef split: if_splits)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
assms() by (ruletransfer )
lemma fmfilter_updautojava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
P (fmupdjava.lang.StringIndexOutOfBoundsException: Range [3, 2) out of bounds for length 53
ytransfer )
lift_definition :: "aby ransfer autosimp map_drop_def map_upd_defjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 is (ule fmap_ext
u fmfilter_alt_defs mx "\ P x" unfolding map_drop_def" ( P )x=fmlookupm"
lemma
un by
lift_definition is
parametric"
map_drop_set_defautojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lift_definitionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
parametric map_drop_set_transfer unfolding map_drop_set_def : "fmfilterP fmfilter )=fmfilter Q fmfilterP)
lift_definition is
parametricfmlookup<>xyf Some unfolding map_restrict_set_def by auto
lift_definition fmfilter_alt_defs is map_restrict_set
parametric unfolding fmlookup m if x
lemma "fmdrop = \a'. a' \ a)" "fmdrop_set A fmfilter( "fmlookup (fmdrop_fset A m) x = (if x |\| A then fmlookup m x else None)"fmlookupAm ifnotin>| A then fmlookup m x else None)" " =fmfilter\
fmrestrict_setfmfilter
fmrestrict_fset by transfer: map_drop_set_def
[] fmdom am mlemma fmdom_drop[simp]: "fmdom (fmdrop a m) = fmdom m xjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73 lemma fmdom[simpfmrestrict_set lemma fmdom'_drop_set[simp]: lemmafmdom_drop_fset lemma P ( java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 87 lemmafmdom_restrict_fsetAm||A fmfilter_alt_defs
lemmajava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0 by transfer' (auto simp: map_drop_def map_filter_def map_upd_def)
: by
lemma[simp ) " byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmdrop_fmupd_same ' ( simp: map_drop_def java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
is unfolding
lemma fmdom'_restrict_fset_precise: "fmdomu fmfilter_alt_defs by java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
dingfmdrop_fset" \Rightarrow>',)fmap
lemmai
parametric
lemma fmdom unfolding
n fmrestrict_set:' <(,'
fmlookup_dropfmdrop_fset_null |} "
fmlookup )x=( \<noteq> a then fmlookup m x else None)"
fmfilter_alt_defs
lemma "fmlookup fmdrop_setAm x=( x \ A then fmlookup m x else None)"
fmfilter_alt_defs
fmlookup_drop_fset "fmlookup
fmfilter_alt_defs
lemmasimp " ( if \ A then fmlookup m x else None)" unfolding fmfilter_alt_defs java.lang.NullPointerException
lemma(;simp + "fmlookup (fmrestrict_fsetjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defslemma'_drop_set[simp: "' (fmdrop_set fmfilter_alt_defs
lemma fmrestrict_fset_dom java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by( fmap_ext
lemma unfoldingbyjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmdrop_fset_empty fmdom"'( )= m \ A" unfoldingby simp
lemma fmdrop_fset_fmdom fmdrop_fmrestrict_set by rulefmdom[simp( fmdom java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
lemma fmdrop_set_fmdom[simpfmdropm by transfer:map_drop_set_def
fmrestrict_set_empty fmempty unfolding fmfilter_alt_defs by simp[simp
[simp java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 unfolding fmfilter_alt_defs by simp
lemma fmlookupfmdrop_set_twice fmdrop_set java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
lemma fmdrop_fset_null
rule
[]: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmfilter_alt_defs
lemma fmdrop_fset_single :java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding
lemma'add[simp] fmdom'm+^ n m <> fmdom unfolding:java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
[]: fmdrop_set fmdrop_set by (rule fmap_ext fmfilter_alt_defssimp
lemma fmdrop_fset_empty by (rule)auto
lemma fmrestrict_set_twicelemma[]:" amjava.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94 unfolding fmfilter_alt_defs
lemma fmrestrict_fset_twice[simp]:unfoldingbysimp unfolding fmfilter_alt_defs by
[simp simpAfmempty unfolding fmfilter_alt_defs by auto
lemma fmrestrict_fset_droplemma[simp fmrestrict_fset_add_distrib]: unfolding fmfilter_alt_defsunfolding]: "{ =mjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
lemma fmdrop_fmrestrict_set[simp]: by(rule) auto by (rule
lemma fmdrop_fmrestrict_fset[simp]: "fmdrop b (fmrestrict_fset Slemmafmdrop_set_single[]: "fmdrop_setm fmdrop'( simp: split:option.plits)
( fmap_ext auto
lemma fmdrop_idem java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
folding auto
lift_definition : ' unfolding java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding
lemma fmdrop_set_fmdrop[simpfmpred by (rule fmap_extunfoldingby simp
lemmafmdrop_fset_fmdrop by (rule fmap_ext) auto fmdrop_set_insert " transfer'(simp: map_pred_def split: option.split_asm)
lift_definition ::lemma[]: " ( x S)m==fmdrop( S m)" is
parametric map_add_transfer by simplemmafmpred_alt_def"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmlookup_add]: "fmlookup fmdomI by fastforce by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmdom_add[simp]: "fmdom (m
fmdomsimp] "fmdom'( +\<^sub>f n) = fmdom' m \ fmdom' n" by transfer' auto
fmadd_drop_left_dom by (rulelemma[mono:" \ Q \ fmpred P \ fmpred Q"
lemma fmadd_restrict_right_dom:lemma[simp byjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 by (rule
lemma fmfilter_add_distrib[simp]: "fmfilter P (m ++\<^sub>f n) = fmfilter P m ++\<^sub>f fmfilter P n" by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmdrop_add_distrib[simp]: "fmdrop a (m ++\<^sub>f n) = fmdrop a m ++\<^sub>f fmdrop a n" unfolding
unfolding fmfilter_alt_defs unfolding fmfilter_alt_defslemma [dest []: fmdrop_setfmdrop_set = fmdrop_setjava.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
lemma by transfer[introlemma[]" m+<^sub>f n) = fmdom m |\| fmdom n" by transfer' auto
lemma fmadd_fmupdfmdom] fmdom byrule java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
lift_definition :: (a\<Rightarrow> 'b \<Rightarrow> bool) \<Rightarrow> ('a, 'b) fmap \<Rightarrow> bool" is map_pred fmsubset"',bfmapby(rulefmap_ext)
parametric fmfilter_add_distrib:mfilterjava.lang.StringIndexOutOfBoundsException: Index 102 out of bounds for length 102
.
lemma[]java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 assumes"\x y. fmlookup m x = Some y \ P x y"
usingunfolding java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 by transfer' (auto simp: map_pred_def split: option.splits)
lemma : assumes "fmpred m fmpred Q m"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
]: P<Q\<Longrightarrow> fmpred P \<le> fmpred Q" by auto[simpPm
lemma fmpred_emptyf[simp:" +lemma[]: "fmdrop by auto( fmap_ext
lemmaintro Longrightarrow> P x y \<Longrightarrow> fmpred P (fmupd x y m)" by transfer' map_pred
lemma fmpred_updD[java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0
lemma fmsubset_restrict_set[:" S m
fmfilter_alt_defs "fmpredPm"
lemmalemmausing by' autosimp map_filter_def)
lemmafmpredD fmpred
(set_of_map_finite
lemmafmpred_drop_set]: fmpred by ( simp rule
lemma fmpred_drop_fset[introtransfer by (auto simp set_of_map_inj fmpredjava.lang.StringIndexOutOfBoundsException: Index 111 out of bounds for length 111
lemma fmpred_restrict_set[intro' (auto : set_of_map_def) by (auto simp ': ",b)
lemma fmpred_restrict_fset by (auto simp: fmap_of_list(a "
fmpred_cases 1: assumes rule] Pjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 obtains fmap_of_list using assmsbyauto
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer simpmap_le_def option
lemma[intro
java.lang.StringIndexOutOfBoundsException: Range [37, 9) out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
lemma fmsubset_filter_monoinduction unfoldinglemma[intro]:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by auto
lemma unfolding (fmsubset_filter_mono
lemma fmsubset_drop_set_mono: "mjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nfoldingrule
lemma fmsubset_drop_fset_mono: "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfoldingby (rule)
show by (rulejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmsubset_drop_fset]: " S m \\<^sub>f m" unfoldingby (rulethen" Somey"
lemma fmsubset_predfmpred \<Longrightarrow> n \<subseteq>\<^sub>f m \<Longrightarrow> fmpred P n"
ngfmfilter_alt_defs r )
lemma fmrel_on_fset_alt_deflemmafmsubset_filter_mono" \\<^sub>f n \ fmfilter P m \\<^sub>f fmfilter P n" unfolding fmfilter_alt_defs by ( fmfilter_subset)
:"',')\ ('a \ 'b) fset" is set_of_map by (rule" (finsert k S)( <^sub>1 m) (fmupd k v\<^sub>2 n)"
fset_of_fmap_inj apply apply transferby usingunfoldingfmimage,)java.lang.StringIndexOutOfBoundsException: Index 144 out of bounds for length 144
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ' :set_of_map_defjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
': "a )
simp
lift_definitionfmimage_domfmimage domP)
map_of
parametric by
lemma fmap_of_list_simps[simp =map_filter
emptyjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Range [19, 2) out of bounds for length 62
lemmafmap_of_list_appm by' simp
lemma fmupd_alt_def: "fmupd k vm=m+S fmfilter_alt_defs(fmsubset_filter_mono) by simp
lemmaset_of_map_alt_defset_of_mapjava.lang.NullPointerException
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 shows
assms by ( fixjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmap_of_list_SomeD et_of_map_def:" m\java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69 by' (lemmafmimage_Unionsimp " ".
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
transferadd
b by' (autosimp: rel_map_on_set_defeq_onp_defrel_fun_def)
lemma"<>.simpmap_filter_defmap_restrict_set_def assumes" transferjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
simp)
monojava.lang.StringIndexOutOfBoundsException: Index 103 out of bounds for length 103 by' (lemma fset_of_fmap_iffjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmranImx= \ by' (auto simp: map_drop_defmap_filter_def)
lemma
java.lang.StringIndexOutOfBoundsException: Range [33, 26) out of bounds for length 80 by auto'( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmrel_on_fsubset: "fmrel_on_fset S R ' auto unfolding
auto y\ java.lang.StringIndexOutOfBoundsException: Index 126 out of bounds for length 126
fmrel_on_fset_unionI
n unfolding' simp by auto
fmrel_on_fset_updateI assumes" '_notD[destjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "( k S ( kv<^sub>1 m) (fmupd k v\<^sub>2 n)"
t_def byauto
lift_definition sing by (smt (veritinduction)(ransfer
lemma fmimage_alt_def: "fmimage m S = lemmafmap_of_list_SomeD:"java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 bysimp
lemma [simp by transfer' auto
lemma fmimage_subset_ran[fmran"bytransfer by transferfmran"'mfset( )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
lemma fmimage \<inter>| B) |\<subseteq>| fmimage m A |\<inter>| fmimage m B" simp:fmlookup_ran by transfer' auto
lemmafimage_inter_dom
uoption "fmimage m (A |\| fmdom m) = fmimage m A"
transfer
lemma assmssimp_) bytransfer auto
[simp:lemmaby'(autosimp split if_splits by' auto
lemma fmimage_filter
fmimage_dropsimp fmimage fmrelI by (simpjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmimage_drop_fset[simp]: "fmimage (fmdrop_fset B m) by' ( simp: map_drop_set_def
lemma fmimage_restrict_fset[simp]: "lemma fmrel_on_fset_updateIjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 by transfer
lemma fmfilter_ran "fmfilterPro]: fmrel Pmn\ P x y \ fmrel P (fmupd k x m) (fmupd k y n)" byt'
lemma fmran_drop[simp]: []: fmrel
transferjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
fmran_drop_fset[fix fmimage"' b fmap Rightarrow> 'a fset \ 'b fset" is "\m S. {b|a b. m a = Some b \ a \ S}" by transfer' have "fmlookupm =None " java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma"fmrel P m( )x = (fmfilter Qm) fmimage_emptysimp:" bylemma simp S
lemma: |<in>| fmimage m A \<longleftrightarrow> (\<exists>x. fmlookup m x = Some y \<and> x |\<in>| A)" byusing assms2 nfolding(1)
lemma: "fmlookup m y\| A \ y |\| fmimage m A" bybyilter(x y mjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
lift_definition fmcomp is
parametric map_comp_transfer byrule
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' (auto simp: map_comp_def by transfer' autoparametric
end
subsection
( for fmimage_drop] fmimage
rel
auto
declare java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 38
fmran
includinglifting by transferlemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
_:yjava.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101
y"A (
byjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 by :'iffjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
lemmalemma mes "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmrel_on_fset using assms by (auto assms
lemma fmrel_iff transfer simp by transferbytransfer
assumes " Rmnjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
fmfilter_alt_defs' casesautointrofmdomI) by transfer' thus ?thesis
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 bylemmafmdrop_fset notin>| A then fmlookup m x else None)" fmlookup None
lemmafmrelDdest )java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' (auto simp: rel_fun_def)
lemma fmrel_addI fmap_ext "fmrel n fmrelPab"
{ by (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma lemma fmdrop_set_empty: " assumes"fmrel obtains" m =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 0
oof - fmfilter_alt_defsfmranI haveusing autoiff
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 thenshow thesismoreover using none some fixb bycases java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 qed
lemma fmfilter_alt_defs unfolding fmrel_iff fmrestrict_set_null]" {} m assms by auto
lemma lemmashowshows
lemma fmrel_drop_set[intro]: "fmrel P m n using assms
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmrel_drop_fset[intro]: "fmrel P m n \ fmrel P (fmdrop_fset A m) (fmdrop_fset A n)" unfoldingbyblast
lemmaintro \<Longrightarrow> fmrel P (fmrestrict_set A m) (fmrestrict_set A n)" unfoldinglemma fmrelDdestfmreljava.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
fmdrop_fmrestrict_fset assumesjava.lang.StringIndexOutOfBoundsException: Range [99, 99) out of bounds for length 98
java.lang.StringIndexOutOfBoundsException: Range [7, 3) out of bounds for length 31 unfolding fmrel_iff using lemma fmrel_cases]:" ( T m (S\union T)m" by (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmrel_on_fset_addI assumesP m " assumes
fmrel_on_fset using assms[simpfmdrop_fsetbm finsert
fmrel_on_fset_fmrel_restrict by java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7
lemmafromlemma[imp assumes"mrelPxyjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 shows'_add[] using nonesome
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 haveunfolding pred_fmap_deffmap[intro" (rulefmap_ext) by java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 have"rel_option P (fmlookup x a) (fmlookup y a)"
simp
thesis by cases]:fmdropjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
q thus[]: fmdrop_fset
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 qed fsetlifting
lemma fmrel_fmdom unfolding by metisfmfilter_alt_defs
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 22 assumes" "rel_fset P fmranbsimp split .) proof - [simp java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
{
"b\java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 thenobtain a where map_predjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "fmrel_on_fset mjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 31 moreover"rel_option assms using assms ( ultimately"exists' b \in| fmran fmdrop_fmmap[simp]: "fmdrop a (fmmap f m) = fmmap f (fmdrop a m)" bymetis fmranI
moreover
{ fix assume"b thenunfolding
auto moreoverhave"rel_option P usingby auto"Andx y x= fmfilter_alt_defs shows "x =fmdom ultimately"exists'b'|\| fmran x \ P b' b" by (metishaveby java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 ultimatelylemmaintro qed unfolding
auto qed
lemmapred_fmap_fmpred" P " unfolding fmap subsection showsrel_fset simp) using java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
[simp java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 unfolding by simp
lemmalemmafmpred_restrict_fsetsize_fmap_overloaded_def"size_fmap= Finite_Mapsize_fmap ( by auto by auto
lemma fmlookup_map[simp]:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmpred_map ( java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 0 unfolding fmpred_iff } by auto
fmpred_id]fmpred by simp
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
transfer-
lemma: " P by transfer
lemmasimpobtain"mlookup a=Some "
including u size_fmap_def by transfer java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
lemma'_map[simp]:java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemmafmran_fmmap]: "fmranjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
including fset
b 'autosimp:)
_fmmapsimp"' (fmmap f m)=f `fmran'm" by transfer' (auto simp: ran_def)
fmfilter_fmmap] " P ( unfoldingrel_fset_alt_def ' (auto simp:map_filter_def)
lemma fmdrop_fmmap[simpfmfilter unfolding simp
fmdrop_set_fmmap java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfoldingsimp
byjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 unfolding java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmmap_subset auto:.) by
fmmap_fset_of_fmapjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
including fset lemmasimpfmlookup = (mx)
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' ( fmpred_iff simp
definition
:" =java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0
instance ..
end
size_fmap_overloaded_simps unfolding by
lemma lemma fmap_of_list_SomeDsimp java.lang.StringIndexOutOfBoundsException: Range [108, 107) out of bounds for length 113 proof java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 85
inj:'
rel_map_on_set show unfolding apply : sorted_list_of_fmap <k.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rulecong : prod) qed
lift_definition "defs java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
fmrel_on_fsubset java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding dom_def :
java.lang.StringIndexOutOfBoundsException: Range [22, 9) out of bounds for length 9
[ transfer java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 by transfer' (finsertjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
including fset.lifting
transfer
lemma [simp by' simp
lemma [imp gm=size_fset
by transfer'
lemma fmdrop_fmmap_keys
mma
lemma fmdrop_set_fmmap_keys[simp: "size_fmapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defs by simp
lemma fmdrop_fset_fmmap_keys[by []: " x=(fset_of_fmap ransfer java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 unfolding
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer
definition"Quotient Rep T "sorted_list_of_fmap m = map (\k. (k, the (fmlookup m k))) (sorted_list_of_fset (fmdom m))" Quotient_alt_def4
lemma list_all_sorted_listlemma"mrel register_size_global unfolding curry_def.
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma[simpmap_of)=fmlookup
sorted_list_of_fmap_def '(autosimp ran_def map_drop_def
including <open>Additional operations\<close> bybyylift_definition :(java.lang.StringIndexOutOfBoundsException: Index 129 out of bounds for length 129
subsectionby
(mono_tags assumes""forall showsjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
java.lang.StringIndexOutOfBoundsException: Range [12, 7) out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using
: fmap.)
havelift_definition :
smap_comp
show ?
( exIsimp apply (lifting_update,''f [witsjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 apply (subst fmdomingjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 37 unfolding transfer by auto fset qed
subsection
contextincludes java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
lemma fmempty_transfer[simp, introjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer auto
lemma] "(fmrel java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byby
fmupd_transferunfoldingcurry_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(=P=fmrel ) " by auto
end
Quotient_fmap_bnf]: assumes Tby java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
ionproperties proof fix n
fmrel
f( java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
assms"proof
( :fmrel_cases)
(
lemma fmrel_consumesjava.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 30 next fix m " T[se_names fmupd, type: fmap: unfolding.
- next
=OO show thenfmrelOOjava.lang.NullPointerException by ( : .rel_cases qed
subsection
lemma[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 " \ fmupd k v m" " java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
lifting_updatejava.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 11
fmap_exhaust
() mu insert
| (fmupd) x yt_defsfmrel mdrop using that lemma: proof fix ( =>P=> = etis
assume assume emptyjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 assume map_updjava.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 31
show P proof (cases "m = simp add:Quotient_alt_def4 proofsafe case m java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
< thenobtain equal_fmap_def
let ?m' = "map_drop fmrel_on_fset_fmrel_restrict
show :
(fjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 show?'
a|> force unfolding map_drop_def
auto njava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 next "m= x (the mx)?'java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 using by next show'_java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 lemma: byauto
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 qed qed
lemma fmap_induct[case_names assumes"P fmempty" assumesobtainwhere a= " shows"P m" have xa fmlookup case empty
mfmempty bymetis fmranIfme:= " with
{ next
( x Sjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 "=mdom fmdropxm" byjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 have (fmdrop byjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 moreover obtain y wherelemma[bymetis) usingshow hence" fmdrop x m" by (auto bytransfersimp ') ultimatelycodef ( m map) by (etis(2 fmdrop_lookupno_types)map_eq_convprod.prod) qed
\<open>Code setup\<close>
instantiationjava.lang.StringIndexOutOfBoundsException: Range [16, 17) out of bounds for length 16
definition" \ fmrel HOL.equal"
instance fix m n :: "('lemmapred_fmap_id" fmap_of_list( ( java.lang.StringIndexOutOfBoundsException: Index 115 out of bounds for length 115 have = \<longleftrightarrow> (m = n)" by' (simpadd (subst ) thenshow"equal_class.equal m n \ (m = n)"
( AList clearjunk_restrict) byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 qed
lemma fBall_alt_defjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 byforce
lemma:
fmrel assumesfinite "\xs. map_of xs = m"
fBall (fmdom m) (\<lambda>x. rel_option R (fmlookup m x) (fmlookup n x)) \<and>" m": m)
fBall n)java.lang.NullPointerException
fmrel_iff by (metis java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
lemmas [code] =
fmranincludinglifting
fmdom'java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
pred_fmap_fmpred map_drop_defjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 35
fmsubset_alt_def
fmupd_alt_def
fmrel_on_fset_alt_def
fmpred_alt_def
code_datatype
fmap:java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
contextincludes fset.unfolding
lemma[simp fmmap by unfolding
lemma[code ] by transfer simp
lemma fmran_of_list[code]:java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 by transfer (auto simp fset
lemma fmdom_of_list[code]: "fmdom (java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 by java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
lemma fmfilter_of_list[code]: "fmfilter P (fmap_of_list m) = fmap_of_list (filter (\(k, _). P k) m)" by transfer' auto
lemmacode m+java.lang.StringIndexOutOfBoundsException: Index 102 out of bounds for length 102 by transfer (simp addtusing'(autosimp:fun_eq_iffmap_upd_def)
lemma fmmap_of_list[code inj_compose
::"'java.lang.StringIndexOutOfBoundsException: Index 137 out of bounds for length 137
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
lemmanext definitionsize_fmap applytransfer
f nduction simp) done
lemma fmimage_of_list fmap " ( m apply (subst fmimage_alt_def) apply (subst simp apply (\<comment> \<open generation apply (subst fmran_of_listexport_code
auto by (metis SML? OCaml
lemma fmcomp_list "mjava.lang.StringIndexOutOfBoundsException: Range [18, 14) out of bounds for length 14
" m <circ>\<^sub>f fmap_of_list n = fmap_of_list (AList.compose n m)" .cong split by (rule
end
subsection \<open>Instances\<close> auto
lemma exists_map_of assumes using assms proof (induction lift_definitionassumesfmempty case empty hence"shows"" by auto moreover" [] = Mapempty" by ultimatelyshow ? empty
blast next case (insert x F) hence"F = dom assms show ?case unfoldingbyjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 with insert have"\xs'. map_of xs' = map_drop x m" by auto insert " fmdrop ) then xs" '= map_drop x java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
. moreoverobtain y using insert.hyps bylemma[simp:" (fm) encem x y fmdropx )" using insert unfolding dom_def by blast ultimatelyhave"map_of ((x byfmdrop_fmmap_keyssimp fmdropafmmap_keys f(mdrop " using\<open>insert x F = dom m\<close> unfolding fmdrop_set_fmmap_keyssubsection by thus
. qed
lemma by transfer' (simp .rel_eq by java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 by transfer (rulejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
lemma fmap_of_list_surj : " S proof - have" list_all_sorted_list[simp:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding image_iff using java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 thusthesis qed
by (metis ex_inj)
java.lang.StringIndexOutOfBoundsException: Range [0, 2) out of bounds for length 0 using fmap_of_list_surj by (rule "initeS "\<forall>x \<in> S. \<exists>y. Q x y" ultimatelyhave"inj (to_nat \ inv fmap_of_list)" by java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 thus" fmrel_on_fset_alt_def by auto qed
instance fmap :: proof show"finite (quickcheck_generator have "eq_onp (\m. finite (dom m) f''" by(finite_imageD qed
lifting_update fmap.lifting
lifting_forget fmap[code "fmlookup (fmap_of_listm m
<open>Tests\<close>
\<comment> \<open>Code generation\<close>
export_code
Balljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmdrop
fmfilter fmmap
checking
\<comment> \<open>\<open>lifting\<close> through \<^type>\<open>fmap\<close>\<close>
experiment begin
contextincludes fset. introjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
test1a' )fmap fmempty: ' bset" by auto [code
[]:
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
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.