Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Tools/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 4 kB image not shown  

Quelle  Finite_Map.thy   Sprache: Isabelle

 
(*  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>

parametric_constant map_add_transfer[transfer_rule]: map_add_def
parametric_constant map_of_transfer

cludesbegin

 ran_def
"rel_mapf\ (=) ===> rel_option f"

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
        includes begin

      " 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
      then show
        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

parametric_constant dom_transfer[transfer_rule]: dom_def

definition map_upd          \<open>m a = _\<close>cases
java.lang.StringIndexOutOfBoundsException: Index 136 out of bounds for length 34

parametric_constant map_upd_transfer[transfer_rule]: map_upd_def

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 "\<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)

parametric_constant    qed

definitiondefinitionmap_drop "a\ ('a \ 'b) \ ('a \ 'b)" where
lter

parametric_constant map_drop_set_transfermap_dropmap_filter

definition map_drop_transfertransfer_rule
"map_restrict_setA=map_filter(a. a \ A)"

parametric_constantmap_restrict_set_transfer]: map_restrict_set_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

parametric_constant[transfer_rule

definition map_drop_set_transfer[transfer_rulemap_drop_set_def
"rel_map_on_set SP eq_onp \<>x. x \ S) ===> rel_option P"

definition definitionmap_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

end


subsection \<open>Abstract characterisation\<close>

typedef ap y"
  morphisms fmlookup Abs_fmap
proof
parametric_constant map_restrict_set_transfer]: map_restrict_set_defunfolding by 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
using by ( 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]:
  assumes qed
  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
lemma by( 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)

lift_definitionfmfilter ('a bool) \ ('a, 'b) fmap \ ('a, 'b) fmap"
  ismap_filter
  parametric
byauto fmempty_lookup]: "fmlookup fmempty = None"

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
  then show "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

"fmlookup m =None"
lemma    using assms byfastforce
lemma fmdom' auto
lemma lemmafmdom_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
unfolding by 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"
unfolding bysimp

lemma
unfolding fmfilter_alt_defslemmafmdrop_lookup] fmlookupfmdropa=None

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"
unfolding unfolding map_drop_set_transfer

lemmafmdrop_set_null byauto
byunfoldingfmrestrict_set : 'set\',bfmap

lemma []: "fmdrop_fset{||} m=java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
by( fmap_ext autounfolding by simp

lemmafmdrop_set_single  by simp
lemmaet_def

lemma fmdrop_fset_singleunfoldingby java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
unfolding byfmdrop_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
unfolding by simp

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
unfolding fmfilter_alt_defs )

lemmaby( map_ext
by (rule

lemma bytransfer :map_drop_defmap_upd_def
by (rulelemmafmdrop_idle ule) auto

lemma fmfilter_alt_defsby simp
unfolding fmfilter_alt_defs by auto

 fmrestrict_fset_twice
unfolding by auto

lemma
unfolding by auto

lemmalemma[simp'_restrict_set_precise:fmdom fmrestrict_setm ' \ A"
unfolding fmfilter_alt_defs by auto

lemma by 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
by unfolding bylemma[]: "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

lemmaby ' (auto simp: map_drop_set_def map_filter_def)
   fmfilter_alt_defs 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
  unfolding by 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

 fmpred::"(a \ 'b \ bool) \ ('a, 'b) fmap \ bool"
  is map_pred
  parametric 
  .

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

lemmalift_definitionfmadd simp finsert   fmdrop_fset
  byauto

 : 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

  unfolding by simp
unfolding fmsubset_alt_def fmdrop_set_add_distrib[
byauto

lemma fmsubset_filter_mono: "m \\<^sub>f n \ fmfilter P m \\<^sub>f fmfilter P n"
unfolding fmsubset_alt_def fmpred_iff
by auto

lemma  unfoldingfmfilter_alt_defslemmafmpredD]:"fmpred m fmlookup m x = Some y \ P x y"
unfolding by (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"
unfolding by (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"

lemmafmfilter_subset]: fmfilter \<subseteq>\<^sub>f m"
unfolding

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]:

lemmafmsubset_restrict_set[] fmrestrict_set \<subseteq>\<^sub>f m"
unfolding by  shows  

 fmsubset_restrict_fset assms
unfolding fmfilter_alt_defs (rule '( :map_pred_defmap_filter_def)

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)
  by  by auto simpfmfilter_alt_defs

lift_definitionfmrel_on_fset:a \<Rightarrow> ('b \<Rightarrow> 'c \<Rightarrow> bool) \<Rightarrow> ('a, 'b) fmap \<Rightarrow> ('a, 'c) fmap \<Rightarrow> bool"]:  by (rule)
  is rel_map_on_set
.

lemma fmrel_on_fset_alt_def
bytransferimp eq_onp_def

 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 obtain wherea=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

lemma[imp: "fmimage shows "finitemap_filter m"
       rev_finite_subset splitmap_of_transfer

:"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

 simp .
  by transfer'auto

(  )   (PA)
  by ' (autosimp: map_filter_def)

lemma[simp: "fmimage lemmafmsubset_restrict_setsimp: fmrestrict_set
  by( add

lemma
  by     java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11

lemma
   map_restrict_set_def

 lemmale> 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

 pred_mono


lemmaalt_def= fmran
   fset.lifting : map_upd_def
  by by

lemma[]:
  byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma fmran
  by (auto '_iff)

lemma
  assumes  unfolding [
  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 



  m  java.lang.NullPointerException
  assms)

lemma fmrel_drop
 fmfilter_alt_defs dom_comp_finite

fmrel_drop_set mjava.lang.NullPointerException
unfolding   java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

  parametric
unfolding

       fmrel
unfolding   [simp by


unfolding fmfilter_alt_defs   map_restrict_set  bylemma   map_restrict_set_transfer

 ' 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

lemma   have 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

 \<open>\<^const>\<open>size\<close> setup\<close>auto

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
qed have 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" '
  including
  by transfer' auto

lemma fmlookup_fmmap_keys[   simp finite_dom_map_of
  bytransfer

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

definition  unfolding size_fmap_def
"m =map\lambda>k.kjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma list_all_sorted_list  by( sum.) (autosplit.splits
unfolding sorted_list_of_fmap_def curry_def fmrel_on_fsetI
 )

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

context includes   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
unfolding proof 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
  then showunfolding\<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

      show   by( (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
          show    using unfolding "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
        qed  assumes "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>
  with show 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
usingby force
=fmupd(  )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    by (auto intro: fmap_ext)
  ultimately show ?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

lemmas [code] =
  fmrel_code
  fmranalt_def
  fmdom_
fmfilter_alt_defs
  pred_fmap_fmpred
  fmsubset_alt_def fmap_distinct
  fmupd_alt_deffmempty
  fmrel_on_fset_alt_def
  fmpred_alt_def


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

lemma fmran_of_list[code]   empty    fix caseinsert)
bytransfer simp: ran_map_of

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 fmimage_of_listusing proof
  fmimage m)A= fset_of_listsnd(<lambda>(k, _). k |\<in>| A) (AList.clearjunk m)))"
  apply( fmimage_alt_def
  apply (subst fmfilter_alt_defs)
  apply (subst fmfilter_of_list)
 subst
  apply transfer'
 metis.restrict_eq list.set_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) (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
  then obtain xs'java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    ..
  moreover obtain y where "m x
    using insert unfolding dom_def byquickcheck_generator constructors fmap_of_list
  ultimately have "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)"
  moreover have "inj (inv fmap_of_list)"
    fmap_of_list_surjbytransferauto map_upd_def
  ultimately have "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

lifting_update
lifting_forget fmap  fmimagefmap_of_list


subsection \<open>Tests\<close>

\<comment> \<open>Code generation\<close>

export_code
  Ball fset fmrel fmap_size_o_mapauto
  fmdrop fmdrop_set fmdrop_fset fmrestrict_set -
  fmfilter fmmapfmmap_keys fmcomp
checking Scala HaskellOCaml?

\<comment> \<open>\<open>lifting\<close> through \<^type>\<open>fmap\<close>\<close>

experiment begin

context includes fset  fmap_of_list\<

lift_definition
  by auto

lift_definition            unfolding
  by auto

end

end

end

99%


¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.24Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.