(* Title: HOL/Library/Finite_Map.thy *) Author: Lars Hupel, TU München
*)
n \<open>Type of finite maps defined as a subtype of maps\<close> AList
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 \<open>rel_map A m n\<close> auto Conditional_Parametricity abbrevs "then wheren Somey " java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 48
lifting_syntax
abbreviation by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
parametric_constant[] java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8
lifting_syntax
abbreviation
rel_map
lemmausing proof
ran_def java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
Amn by auto \<open>rel_map A m n\<close> proofobtain n fix"n y assumex obtain"m a x" unfolding ran_def byunfolding ran_def
rel_option using\<open>rel_map A m n\<close>unfolding by ran_alt_defbyjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 thenobtain ran_def java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 unfolding
auto then :: "' definition map_filter :: "('a \ bool) \ ('a \ 'b) \ ('a \ 'b)" where
ran_def nextm (x P None
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 assume then java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 5
ran_def
induct simp(m" using by thenfinite unfolding ( rev_finite_subset: if_splits
cases then"\x \ ran m. A x y"
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 qed
lemma ran_alt_def: "ran (\a. a \ A)" unfolding [transfer_rule
definition :'
definition" P "map_upd k v m ( java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 0
show"map_filter set_of_map_def dom_def bym ( simp
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
map_filter_finite]: "rel_map_on_set S P eq_onp lemma:" java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 proof " m ={k ) . v} unfolding:" (k k ( ))dom m" thenshow ?thesis byhencefor qed
definition map_drop . "map_drop a = java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3
definitionjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 "map_drop_set A =map_filter\lambdaa \ A)"
parametric_constant
definitionmap_restrict_set"aset "map_restrict_set x = set_of_mapyjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
parametric_constant[transfer_rule java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
parametric_constant
definition" "rel_map_on_set S P = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
definitionlemma
et_of_mapk.k= }"
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding by
:finite unfolding set_of_map_alt_def fmlookup by
lemma : "inj "
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 fixy assumejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0 hence Someya ome java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 unfolding hence k by (metis dom thus . qed
lemma dom_compbytransfer lemma" None x |\| fmdom m" by (simp add: fmlookup_dom_iff) by (autofmdomI
lemmafmdom_notD |java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0 byassumes
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 morphisms proof showjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 assumes|in:< java.lang.StringIndexOutOfBoundsException: Index 117 out of bounds for length 117 qedobtains"xywhere "fmlookupjava.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 43
lemma fmdom'_alt_def: "fmdom' m =
lemma java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
fmap uto
lemmabytransfer
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 shows" ' simp using isempty
subsection simp
lemma]: includes|nfmdom
java.lang.StringIndexOutOfBoundsException: Range [9, 5) out of bounds for length 5
lift_definition dom is
parametric lemma'_iff: fmdom'[ fmdom = { java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
isjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 by' auto : ran_def)
lemmasimp a a belsejava.lang.StringIndexOutOfBoundsException: Index 98 out of bounds for length 98
lemmalemma fmdom_fmupd[simp]: "fmdom (fmupd a b mlemma assmsby auto: fmlookup_dom'_)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 unfolding'_alt_def byjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 obtains using' (autosimp )
fmdoma ) java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
l fmemptysimp
parametric ::"'a\java.lang.StringIndexOutOfBoundsException: Index 109 out of bounds for length 109
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 by transfer
lemma fmdom_notI: "fmlookup m
:fmlookup lemma fmdom_notD[lemma auto java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
lemma fmdomE[elimby' ( simp: map_filter_defjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 assumes[simp "fmlookupm y" using map_upd_def P m java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
lift_definition' ::"',')using that byfjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
.
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 lemma fmdom assumesbyjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
fmdom"
lemma fmdom ) assumes
fmlookupif using
lemmafmdomfmdom (fmdom by transfer' force
lemma finite_fmdom lift_definition : "java.lang.StringIndexOutOfBoundsException: Index 109 out of bounds for length 109 unfolding
lemma dom_fmlookup[simp]: "dom (fmlookup m) = fmdom' m" bytransfer
lift_definition assms assms islemma_[] "mdom fmfilter ) . (') byjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
mma[simp" x=bytransfer' (auto: map_filter_defjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 by transfer
lemma fmupd_reorder_neq lift_definition fmrestrict_fset by' ( simp:map_filter_defjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 shows
assms
auto
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0 by transfer' fmrestrict_set = \a. a \ A)"
lift_definition fmfilter :: "('aby transfer; :map_drop_defjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 21
parametric thatjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 by
[by by transfer'lemma'_restrict_setfmrestrict_set
lemmafmdom )subseteq java.lang.StringIndexOutOfBoundsException: Index 108 out of bounds for length 108
java.lang.StringIndexOutOfBoundsException: Range [36, 11) out of bounds for length 57
lemma "fmfilter x y ' (auto : map_drop_def map_filter_def) assumes(simp shows fmdrop"' '( : map_drop_defmap_filter_defjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 proof(ule ) fix x have None using that showfmfilterx by simp
java.lang.StringIndexOutOfBoundsException: Range [6, 3) out of bounds for length 3
lemma fmfilter_comp[simp]: "fmfilter ismap_drop_set by transfer' (auto simp: map_filter_def)
lemmafmfilter_comm P (Qm ( " unfolding
lemmais \Andx mx= <Longrightarrow> P x = Q x" shows"fmfilter P m = fmfilter java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 fix java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 have fmlookup_drop_fsetfmfilter using that= \" (fmdrop_fset |java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82 then fmlookup_restrict_setB= lambda>a. a |\<notin>| B)" by auto qed" A = fmfilter
lemma fmfilter_congby('; simp add map_drop_def map_drop_set_def map_restrict_set_def)+
htarrow " shows"fmfilter P m = fmfilter Q n" using assms(2) unfolding
java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 39
lemmaf[simp [simp
fmfilter )= fmfilter fmfilter by transfer ruleauto:fmdom subseteq byjava.lang.StringIndexOutOfBoundsException: Index 108 out of bounds for length 108
[:" (fmdrop am java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 by' (auto simp: map_filter_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lift_definition fmdrop_set :: "'a set \ ('a, 'b) fmap \ ('a, 'b) fmap"
map_drop_set
parametricjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding map_drop_set_def by auto
lift_definition : ' Rightarrow>'a'
smap_drop_set
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
map_drop_set_def
ition :" \) \<Rightarrow> ('a, 'b) fmap" lemma[simpsimp m
parametric" (fmdrop am) ifx\ a then fmlookup m x else None)" unfolding map_restrict_set_def by auto rule)
is map_restrict_set( ) if
parametric [unfoldingbysimp by auto
lemma simp " fmlookup_restrict_set[]: "fmdrop_set fmlookupfmrestrict_setAm)x=(if x \ A then fmlookup m x else None)" "B= (a. a |\| B)" "fmrestrict_set A = fmfilter (\a. a \ A)" "fmrestrict_fset by';simpadd map_drop_set_defmap_restrict_set_def+
lemma fmdom_drop bysimp lemmafmrestrict_fset_nullsimp|m "
fmdom[] fmdom A mfmfilter_alt_defs lemma fmdom_drop_fset lemma fmdomfmrestrict_set_domsimpbyrule lemma fmdom_restrict_fset ) auto
lemma ' (autosimp map_drop_def map_filter_def )
: by(fmap_ext by transferjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmlookup_drop]: "fmlookup (fmdrop a m) java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfoldingbysimp
lemma fmlookup_drop_set " (fmdrop_set A fmdrop_set_twice[simp] fmdrop_set S( m) S unfolding fmfilter_alt_defs lemma[simp )auto
lemma[simp) auto "fmlookup (fmdrop_fsetjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defs by simp
lemma fmlookup_restrict_fset[simp]: "fmlookup (fmrestrict_fset A m) java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 29
fmfilter_alt_defs[] " }m =fmempty
lemma[" ( +java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92 '( simp split .plits)
lemma [simp by (rule fmap_extfmdom:' (+\subfn fmdom'm\' " ' auto
lemma fmdrop_emptyrule) auto unfolding fmfilter_alt_defs by simp
lemma:lemmasimp insertx( " unfoldingby simp
lemma[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding
lemmasimpa (+ by transfer' (auto simp: map_drop_set_def map_filter_def)
lemma bytransferjava.lang.StringIndexOutOfBoundsException: Index 114 out of bounds for length 114
fmrestrict_set_empty java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 unfolding
[simp{}m =java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 by ( fmap_ext
simp {a} m=fmdrop auto:.java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 unfoldingbyrule)auto
lemmajava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0 unfolding fmfilter_alt_defs by simp by java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
lemma fmrestrict_set_null[simpmap_pred_transfer unfolding fmfilter_alt_defs by simp
fmdrop_fset_insertfmdrop_fset) x by (rule fmap_ext) auto java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
lemma fmrestrict_set_twice[simp]: "fmrestrict_set S (fmrestrict_set T m) = fmrestrict_set (S \ T) m" unfolding fmfilter_alt_defs by auto
lemma fmrestrict_fset_twice fmpred_mono_strong unfoldingby auto
lemma fmrestrict_set_drop[lemma'_add[simp:" m+\<^sub>f n) = fmdom' m \ fmdom' n" by transfer' auto unfolding fmfilter_alt_defs lemma: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmrestrict_fset_drop] auto unfolding java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (rule fmap_ext) auto
lemma fmdrop_fmrestrict_fsetsimp fmdrop java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (rule fmap_ext) auto
lemma unfoldingby auto
lemmafmdrop_set_twice" S (T m (S\ unfolding fmfilter_alt_defs by auto
fmdrop_fset_twice]:"mdrop_fsetS ( T m) ( \union|T)mjava.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97
lt_defs
lemma[]:
( bytransfermap_pred_def
lemmasimpS( ( )mjava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
rule)auto)
java.lang.StringIndexOutOfBoundsException: Index 135 out of bounds for length 135 is
parametric by simpsimpjava.lang.NullPointerException
lemma fmlookup_add[ "fmlookup (m ++\<^sub>f n) x = (if x |\| fmdom n then fmlookup n x else fmlookup m x)" by transfer' (auto simp: map_add_def split: option.splits)
:( java.lang.StringIndexOutOfBoundsException: Range [94, 95) out of bounds for length 94 lemma'_add[simp:"' java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
fmfilter_alt_defsdest
lemmafmrestrict_set_add_distribfmfilter_alt_defsfmsubset_filter_mono
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding (java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
lemma lemma: " Pfmfilter_alt_defsby( )
fmfilter_alt_defs java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
lemma fmadd_empty lemmafmpred_mono_strong "\x y. fmlookup m x = Some y \ P x y \ Q x y" lemma fmadd_idempotent[simp]: "m ++\<^sub>f m = m" bytransferautooption
lemma unfolding fmfilte mpred_mono\> by transferauto fmfilter_subset" P \\<^sub>f m"
lemma madd_fmupd] m+ fmsubset_drop byrule
lift_definition fmpred[]:" Pm is
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
.
lemma[intro byby auto assumes fmsubset_restrict_setsimpjava.lang.NullPointerException showsjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 using unfoldingby( bytransfer
lemma]:"Pm by transfer' (by(ruleset_of_map_finitejava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
lemma fmpred_iffauto: java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 '
lemma:"P fBall (fmdom m) (\x. P x (the (fmlookup m x)))" unfolding fmpred_iff[simp (,)|<in>| fset_of_fmap m \<longleftrightarrow> fmlookup m a = Some b" using fmdomI
lemma fmpred_mono_strongjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 assumes" shows using assmsimjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
[mono by auto
lemma fmpred_empty (none"
auto
lemma fmsubset (a b fmap by' (autosimp: map_pred_def )
by transfer (java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 13
fmpred_drop]:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (auto simpjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
fmdom_fmap_of_list byrule) by(uto: )
lemma fmpred_drop_fset fmrel_on_fset 'fset by (auto simp:java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
lemma"rel_set (rana \java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93 defs
ed_cases assumesPm
java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
by
fmsubsetusing isjava.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
: "\ by fmfilter_alt_defs obtainna "
lemma: " P m\ n \\<^sub>f m \ fmpred P n"
nfolding by autofmfilter_alt_defs ule
: m unfolding fmsubset_alt_def fmpred_ifffmfilter_alt_defsrulejava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 by finsertfmupd
lemma fmsubset_drop_monotransfer
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma [] fmimage Pjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 unfolding (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmsubset_drop_fset_mono:map_drop_setjava.lang.NullPointerException unfolding[simp , ) ) = v fmap_of_list
simp java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 unfolding fmpred_iff
fmsubset_dropfmdrop
[simpS java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69 unfolding transfer[thusjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
fmsubset_drop_fset] age mffilterby' (simp : dom_map_of_conv_image_fst)
fmfilter_alt_defs
]"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byrule
lemma fmsubset_restrict_fsetjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 unfolding
"Axo:) byusing assms
[intro] inj applyrule applyby(: assms using[lemma[] "le> Q \ fmrel_on_fset S R \ fmrel_on_fset S Q"
lemma[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 bylemma: " xSomeyjava.lang.StringIndexOutOfBoundsException: Range [0, 64) out of bounds for length 63
fmrel_on_fset_alt_defAm =fmimage -) by simp
fmap_of_listajava.lang.NullPointerException
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
parametric by (rulelemma[destlemma:"||
lemma " fmrel_on_fset_unionIjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 " k ) )=fmupdv( "
transfer: )+
lemma[simp Rn bytransfer
lemma fmupd_alt_defbytransfer
simp
lemma fmpred_of_list x<'" assumes"java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 30 shows o java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
u java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 by ( xs (java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 3
subsection \<open>BNF setup\<close> by lift_definition: "a ')fmapjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
lemma by transfer' (simp add: dom_map_of_conv_image_fst)
fmdomemptyfmap is rel_map_on_set
.
lemmafmrel_on_fset_alt_def]
fmrel_on_fsetI lemma]:fmupdby( add
: :" (| by ( "a
assms
fmrel_on_fset_alt_def
sing
lemma unfolding fmrel_on_fset_alt_defmap_filter map_filter_transfer by auto transfer'auto
auto unfoldingtransfer ' (auto simp rel_fun_def)
fmlookup_filter"(java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 42
lemma java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
)
: assumes"fmrel_on_fset S P m n""P v\<^sub>1 v\<^sub>2"
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0 usingransfer
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0 bylemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
: "a')fmap shows
lemma fmimage_alt_def
transferran_def)
[fmimage by
fmimage_subset_ranfmimage
transfer |some where yjava.lang.StringIndexOutOfBoundsException: Index 126 out of bounds for length 126
fmimage_dom fmimageI= <>in
mp)
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
transfer
lemma
fmimage "' ( simp: fmlookup_image_iff)
map_comp unfoldingby ()
[lemma[]: fmrel
transfer map_drop_set_transfer fmfilter_alt_defsby map_drop_set_def
lemma fmimage_filter by transfer \<open>BNF setup\<close>
fmimage_drop lemma:fmrel
lemmafmimage_drop_fsetmap_restrict_set_def by
lemma
fmran
fmfilter_ran
transfer: java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
lemmaB l java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
lemma fmrel_on_fset_fmrel_restrict by transferassms
lemma fmran_restrict_fset: "fmran (fmrestrict_fset A m) = fmimage m (fmdom m |\| A)"lemma (add .rel_sel
fmdom_restrict_fsetfmdom java.lang.NullPointerException
S(+java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 by'(uto simp: ran_def)
lemma:" m x Somey byauto )
fmimageE: assumes"y |\| fmimage m A"
| fmreljava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 23 using assms " \| fmdom x \ a |\| fmdom y" for a
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
map_comp assumes
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 85
lemma java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 13
(::splits
end
lift_bnf
)= \notinAthenx)"
relmetis [ x by
by
lemma fmran
fmdroa "
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmlookup_ran by ' simp: )
lemma[]:"fmlookup a fmlookupya"
autofmlookup_ran
f'E]: assumes
proof - byfmranI
auto
lemma[]:" } java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 by' cases rule: optionrel_cases java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
moreoverjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 assumesby simp}
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
by transfer
lemma fmrel_upd fmfilter_alt_defs by transfer' fmrel_restrict_set[]: "fmrelPmn
[]: " Punfolding fmfilter_alt_defs b java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmrestrict_fset_drop'( )java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87 lemma( )
assumes
showsjava.lang.NullPointerException by (, )assms.rep_eq.rel_sel " "
lemma[ Sjava.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 91 " njava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
( fmap_ext proofjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 7
[] byassumes" " is using by qed
lemma ]: fmrel auto
fmrel_iffjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
lemma[introfmrelassmsadd unfolding fmfilter_alt_defs by' ( thus?java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
lemma fmrel_drop_set[intro]: "fmrel P fmfilter_alt_defs bysimp
fmfilter_alt_defs
lemma fmrel_drop_fset[intro
ransfer
lemma unfolding fmfilter_alt_defsm+java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
lemma() fmfilter_alt_defs unfolding [simp:
lemma fmrel_on_fset_fmrel_restrict fmran_fmmap" xyjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 23 "fmrel_on_fset S P m b (simp )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
b by (rule fmran'fmmapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmrel_on_fset_refl_strong assumes shows" unfolding usingfmpred have u assms byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
( option_rel_Some1)
a " SPm n "fmrel_on_fset shows using{ unfoldingunfoldingb by auto fmpred_alt_def" P m lemma fmdrop_fset_fmmap[simp]: "fmdrop_fset A (fmmap f m) = fmmap f (fmdrop_fset A m)"
lemma fmrel_fmdom_eq java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 assumesfmreljava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
< proof - "a|| fmdom x \ a |\| fmdom y" for a proof -
s unfoldingfmfilter_alt_defs lemmafmpred_monomono" java.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110 thusjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 by cases (auto intro qed thus ?thesis ' rel_fset_alt_def
qed
fmrel_fmdom unfolding fmdomfmran
(
lemma [intro assumesxy" "by(: fmfilter_alt_defsjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
] ize_fmap=
{
assume [intro
instantiationunfoldingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
moreoverjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 by haveend bymetis () "lemma [simp: size =size( x"
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 moreover
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 fix'java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 7 assumeb\<in>| fmran y" "y java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 moreover"rel_option P fmlookup xa (fmlookupy)" using assmsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ultimatelyhave"\b'. b' |\| fmran x \ P b' b" bylemma fms:m
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 ultimately[]: fmran) 'java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
by autofmsubset_restrict_fset_mono java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 qed\<close> [simp ]"A
fmrel_rel_fmran java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
fmran
l_fset_fset
lemma fmrestrict_set_fmmap[ fmmap
fmap fmran
java.lang.StringIndexOutOfBoundsException: Range [33, 27) out of bounds for length 27
lemma pred_fmap_id fmfilter_alt_defs fmfilter_alt_defs fmfilter_subset unfoldingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by simp
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by auto unfolding.lifting
[simp( f) ffmlookup by
fmpred_mapPfmmap unfolding by
lemma [simp:"map_of byjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
"( )# =fmupdkv fmap_of_list )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 lemmasimpa( ) mdrop
lemma unfolding fmfil by transfer autosize_fmap_overloaded_def java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmdom_map[simpjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fset by transfer
lemma fmdom'_ java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 by transferjava.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 0
lemma fmfilter_fmmap[simp]: "fmfilter Pjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' (auto
: fmmap()java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
fmfilter_alt_defs simp
lemma { } unfolding fmfilter_alt_defs
lemma fmdrop_fset_fmmap
subsection
lemma fmrestrict_set_fmmap[simp
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
lemma fmrestrict_fset_fmmap[unfolding
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemmaproofby by' ( simp:map_le_defjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
lemma fmmap_fset_of_fmap: "fset_of_fmap (fmmap assms
including ' ( simp: )
lemmajava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 by transfer' (auto simp: fun_eq_iff map_upd_def by ' ( simpjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
fmap
[]: "size_fmapf =size_fset (\(a, b). f a + g b) (fset_of_fmap m)"
instantiation fmap
definition size_fmap java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
size_fmap_overloaded_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
instance ..
end
size_fmap_overloaded_simpssize ( ransfer lemma[simp by java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
size_fmap proofjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 have inj: "inj_on (\(k, v). (k, h v)) (fset (fset_of_fmap m))" for m
inj_on_def show ?thesis unfolding size_fmap_def apply (clarsimp simp:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rule shows "QuotientR( AbsRep T" qed
setup\<open>
java.lang.StringIndexOutOfBoundsException: Index 105 out of bounds for length 105
@{thm size_fmap_overloaded_deflemma fmran_drop]: fmran mfmdoma|})"
@{thms map_of_sorted_list]: " (sorted_list_of_fmap m) fmlookup m" \<close>
subsection
fmmap_keys"a "\f m a. map_option (f a) (m a)" lemmaf java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
simp
( bytransfer finite>
lemma fmimageE[]:
including " assumes "y by transfer' auto
lemma fmlookup_fmmap_keys[simp]: "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ' simp
lemmafmrestrict_set_fmmap_keys:"f_ map_pred_defjava.lang.StringIndexOutOfBoundsException: Range [5, 1) out of bounds for length 14 unfolding fmfilter_alt_defs
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defs fmranfmlookupm=Map
lemmafmmap_keys_subset by
sorted_list_of_fmap' []java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
fmap
lemma unfolding list
smt,) Ball_set sorted_list_of_fset_simps1 )> =P=fmrel
lemma map_of_sorted_list unfolding sorted_list_of_fmap_def
includinglemma[quot_map by"Quotient R Abs Rep"
<Additional
lemma mn assumes showshavemlookup java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
obtainwhere unfolding
define f' where "f' x = [consumes:
have unfolding eq_onp_defobtains fmrel[fmempty fmap
show ?thesis
rule= f'] have"T java.lang.NullPointerException applyshow fmrelT< by rule) java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 unfolding f'_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byauto assmsfmap_distinct qed
subsectionfmempty
contextincludes lifting_syntax begin fmfilter_alt_defs
lemma[,, ]:"Pfmempty fmempty" by auto blast
lemma fmadd_transfer by blast here[ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "fmrel fmupd xy(xm" by (
lemma" S P proof transfer "= => P=>fmrelP=>fmrelbetis2fmdrop_lookup) by auto
end
lemma Quotient_fmap_bnf assumes" shows"Quotient (fmrel R) (fmmapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding safeproof fixn
el thennext
assms simprel_fun_eq by (cases show" SPmn" "m<noteq> {}" by simp show java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (rule fmap_ext next
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 show"fmrel T (fmmap Rep m) m" unfolding" <|fmdomxbyjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 by (metis (mono_tagsbyautoRm n next from java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 by simp show .collapse by (simpauto qed
subsection'alt_def
fmrel_fmdomjava.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 19 lemma[simp \<noteq> fmupd k v m" "fmupd k v qed by
lifting_update fmapjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
lemma fmap_exhaust[cases type: fmap]: obtainsincludes.lifting
|
that fmap.iftinghencefmempty proof lemma[codejava.lang.StringIndexOutOfBoundsException: Range [56, 57) out of bounds for length 56 assume" assume: insert assume (auto)
hence f fmdrop
auto java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 casethusauto
case False hence
fmy m: fun_eq_iff
let
show ?thesis proof (rule map_upd) showunfolding using\<open>finite (dom m)\<close>>Code\<close> unfolding byjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 next show using\<open>x \<in> dom m\<close> unfolding map_drop_def map_filter_def map_upd_defjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 byauto next showsetup
map_drop_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byauto \< qed qed
lemma fmap_induct "Pfmempty" assumes (
Pmjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 proof (induction"fmdom m" arbitrarysimp case hence"m = fmempty" by java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 4 withjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 by simp next case (insert x S) hence"S = fmdom (fmdrop x m)" by auto withhave"(xm" byauto obtain' where map_ofxs x m" moreover obtain y where .
force
x( xm" byby ransfer ) ultimatelyshow ?case
(lemma[:" fmmap_keysfm=fmmap_keys (mdropam" qed
\<open>Code setup\<close>
instantiation fmap :: (type, equal) equal
definition"equal_fmap \ fmrel HOL.equal"
instanceproof fixlemmafmrestrict_set_fmmap_keys]: "java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 have"fmrel (=) mlemmajava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
add:option fmfilter_alt_defs then unfolding equal_fmap_def by( addequal_eq]) qed
end
lemmafBall_alt_deffBallP\<longleftrightarrow> (\<forall>x. x |\<in>| S \<longrightarrow> P x)" by force
lemma fmrel_code: "fmrel R
fBallsmt by(UNIV_I
fBall (fmdom
fmrel_iff by (metis option
fmrel_code
fmran'_alt_def
fmdom" "shows
fmfilter_alt_defs
f where" (fx) if x rule inj_compose)
fmsubset_alt_def assms metis
fmupd_alt_def
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
fmpred_alt_def
code_datatype
fmap)'fjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
contextincludes fset ?
lemma fmlookup_of_list]:"fmlookup( )=map_of " by transfer simp
subsection by transfer
lemma fmran_of_list[code by transfer (auto
java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 by transfer (auto fmfilter fmmap_keys
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' by transfer auto
lemma [transfer_rule
simp
lemma applytransfer by (metis (no_types, lifting)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemmafmmap_keys_of_listjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 lemmaquot_map apply transfer forinduction : apsnd_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 done
lemma fmimage_of_list[code "fmimage (fmap_of_list m) A = fset_of_list have" ( m) java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 apply (subst fmimage_alt_def) apply (subst fmfilter_alt_defs) apply (subst fmfilter_of_list) apply (subst fmran_of_list) apply transfer m by (metis .rel_map
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) (simp bysimp
end
subsection add.rel_compp.)
lemma exists_map_of: assumes using assms proof (inductionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmupd " .empty" by auto havemap_ofempty by ultimatelycase byblast next case ( that fmap and.lifting hence"F = dom (map_drop x m)" unfolding map_drop_def map_filter_def transfer with insert"inite(domm" by auto obtain xs' "map_of xs' = map_drop x m"
.. moreoverobtainwhere" usingunfolding dom_def ultimatelyhave"map_of ( True ?thesis using empty by simp using\<open>insert x F = dom m\<close> unfolding map_drop_def map_filter_def byjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 thuscase
.. qed
lemma exists_fmap_of_list: "\xs. fmap_of_list xs = m" by transfer ?thesis
lemma fmap_of_list_surjshow?) proofjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 havebyjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 unfolding image_iff using exists_fmap_of_list by (metis UNIV_Ibyauto "x \ dom ?m'" qed
instance fmap :: (finite, finite) finite proof showjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
rulejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 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.