Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  Finite_Map.thy   Sprache: Isabelle

 
(*  Title:      HOL/Library/Finite_Map.thy
    Author:     Lars Hupel, TU München
*)


section

theory
  importsFSet Conditional_Parametricity
  abbrevs "
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[transfer_rule]: map_of_def

context includes lifting_syntax begin

abbreviation rel_map :: "('b \ 'c \ bool) \ ('a \ 'b) \ ('a \ 'c) \ bool" where
"rel_map f \ (=) ===> rel_option f"

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"
      then obtain 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
unfolding by 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"
        unfolding  by         \<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

  : ' \ ('a \ 'b) \ ('a \ 'b)" where
"parametric_constant [transfer_rule]: map_filter_def

parametric_constant[transfer_rule

 java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 7
binduct:)

parametric_constantparametric_constant  set_of_map_alt_def

lemma[intro:
rel_map_on_set=eq_onpshows "injset_of_map"

tion : "'a \ 'b) \ ('a \ 'b) set" where
set_of_map,vkm   v}

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
by lemma" (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 where   where    y"
using by ( 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

fmdomE
   "x ||fmdomm"
  obtains
using assms by

lift_definition
  is
  parametric ran
.

 fmlookup_dom lemma'[]"' fmempty {"by transfer'simp
bytransfer

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
parametric
lemma fmdommap_upd_def(simp

lemma lemma[] 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
    using by 
  then show
    by lemma[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

lemma
  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_set_dom[]unfolding  (fmfilter_comm
byrule

lemma fmrestrict_fset_dom java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
by( fmap_ext

lemma
unfolding byjava.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"
unfolding  by 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

 simpm=
unfolding fmrestrict_set_domm+

lemma fmrestrict_fset_null[simp]:bytransfer: :option
lt_defs

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]:unfolding bysimp
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_extunfolding  by 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 fmdrop_fset_add_distriblemma[simp " (mdrop_fset=fmdrop_fset S|<> ) "
  unfolding fmfilter_alt_defs   transfer(lt_defs

 fmrestrict_set_add_distrib
by rule' (autosimp map_pred_defmap_filter_def)
  unfolding fmfilter_alt_defslemmafmdrop_fset_fmdropfmdrop_fset  )fmdrop_fset "

by( fmap_ext er_alt_defs
  "fmrestrict_fset A (m ++lift_definition fmadd :: "('a, 'b) fmap \ ('a, 'b) fmap \ ('a, 'b) fmap" (infixl \++\<^sub>f\ 100)
 unfolding  is

lemma[]: fmempty
  by (transfer'; auto)+

lemma
  by' (autosimp: map_add_def : option.splits)

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)

 [ Pjava.lang.NullPointerException
  bylemma [simp fmfilter_alt_defs fmsubset_filter_mono

lemma fmpred_iff: "fmpred P m unfolding fmfilter_alt_defs by simpunfolding fmfilter_alt_defs fmfilter_alt_defsbyrule fmsubset_filter_mono)
  by auto

 fmpred_alt_deffmpred byule
    unfolding bysimp
  usinglemmafmsubset_restrict_set_monom 

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"

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

lift_definition ::"',')fmap \ ('a, 'b) fmap \ bool" (infix \\\<^sub>f\ 50)
  is map_le
.

 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
unfolding lemma[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
unfolding by (rule)

 ' imp eq_onp_def)
unfolding (rule)

 fmsubset_restrict_fset_monombysimp]
unfolding "fmpred "

lemma fmfilter_subset [abs_defassms
unfolding 

lemma fmsubset_dropby  ismap_le
unfolding  rule

 show
by (rulejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 fmsubset_drop_fset]: " S m \\<^sub>f m"
unfolding by (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
  using unfoldingfmimage,)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

lift_definition fmrel_on_fset fmimage_drop] [:fmrestrict_set
  isby simp
.

 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_dom[simpintro
  fmdom_fmupd fmdom)   fmdom simp)

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:lemma by'(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:"
  by lemma 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"
  by    byilter(x y mjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0

lemma       ''auto
  assumes " map_drop_def
  obtains fmdrop_lookup    fmdom
  usingauto

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
  by  lemmafmdrop_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
    have using autoiff
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  then show 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 
lemma show  shows  

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)"
unfolding byblast

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

    byauto
unfolding

lemma []: fmrestrict_fset  fmranmran
  " fmfilter_alt_defs auto
unfolding fmrel_on_fset_alt_def fmrel_iff
byauto

 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

lemma  fromlemma[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
have  unfolding 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
    then obtain 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
    moreover have "rel_option P
      using by auto"Andx y x= fmfilter_alt_defs shows "x =fmdom
ultimately"exists'b'|\| fmran x \ P b' b"
      by (metishave   by 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

lemma fmrel_rel_fmranlemmafmrel_fmdom
 unfoldingalt_def
bymetisfmrel_fmdom_eq  bytransfer 

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

 fmdrop_fset_fmmap fmdrop_fset_
  unfolding by)

]: " fmmap )=fmmaplift_definition:(a< b\ 'c) \ ('a, 'b) fmap \ ('a, 'c) fmap" is
  unfolding.pred_set'_alt_def

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

subsection \<open>\<^const>\<open>size\<close> setup\<close>fmpred_id]:  

definition size_fmap   'simp
[simp]: "size_fmap lemma fmmap_add fmap_of_list(k,vkvs fmupd v(kvs"

instantiation  bylemmafmdrop_fmmap_keys   mmap_keys ( m"

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

setupassumeslemma[] fmdrop ed_alt_def1)
BNF_LFP_Size\^lemma[] map_of)=fmlookup
  @thm
  @thmsincluding
\<close>


subsection \<open>Additional operations\<close>

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

lemma fmrestrict_set_fmmap_keys [simpfmimagefmap_size_o_mapg
  unfolding ' (autos: map_filter_def)

 fmrestrict_fset_fmmap_keys] A(  )=fmmap_keys )
  

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>
  by   byylift_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

context includes 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
  by by

 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
      <
      then obtain 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"
  assumes obtainwhere  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)
    using show
  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 )
  then show "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

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

lemma    next
  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
  ultimately show ?   empty
 blast
next
  case (insert x F)
  hence "F = dom assms show ?case
unfolding byjava.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
.
  moreover obtain y     using insert.hyps bylemma[simp:" (fm) encem x y fmdropx )"
    using insert unfolding dom_def by blast
  ultimately have "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

instance fmap :: (countable, countable) countable
proof ding fmlookup_dom_iff
  
    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"
  ultimately have "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

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

end

end

end

99%


¤ Dauer der Verarbeitung: 0.22 Sekunden  ¤

*© Formatika GbR, Deutschland






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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge
 




Quellcodebibliothek  | Gedichte  | Musik  | Bilder  | Normaldarstellung  | © 2026 JDD |