Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/HOL/HOLCF/Library/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 27 kB image not shown  

Quelle  Defl_Bifinite.thy   Sprache: Isabelle

 
(*  Title:      HOL/HOLCF/Library/Defl_Bifinite.thy
    Author:     Brian Huffman
*)


section

theoryDefl_Bifinite
imports HOLCF    Author:*
begin

subsection \<open>Lemmas about MOST\<close>

default_sort

subsection \<open>Eventually constant sequences\<close> HOLCF HOL-LibraryInfinite_Set


subsection
where
  "eventually_constant S = (java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 0

lemma eventually_constant_MOST_MOST:
  "eventually_constant S \ (MOST m. MOST n. S n = S m)"
unfolding eventually_constant_def MOST_nat
apply safe
apply (rule_tac x=m in exI, clarify)
apply (rule_tac x=m in exI, clarifyjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4

apply fast
done

lemma eventually_constantI: "MOST unfolding eventually_constant_def
unfoldingeventually_constant_defbyfast

lemma eventually_constant_comp:
  "eventually_constant (\i. S i) \ eventually_constant (\i. f (S i))"
unfolding eventually_constant_def
apply (erule exE, rule_tac x="f x" in exI)
apply(eruleMOST_mono)
done

lemma eventually_constant_Suc_iff
  " "eventually_constant(\<lambda>i. S (Suc i)) \<Longrightarrow> eventually_constant (\<lambda>i. S i)"
unfolding eventually_constant_def
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma
  "eventually_constant (\i. S (Suc i)) \ eventually_constant (\i. S i)"
by (rule [THEN iffD1

subsectiondefinition

definition
  eventual::"nat\
"eventual S = THE . MOST i Si = x)"

lemma eventual_eqI: "MOST i. S i = x \ eventual S = x"
unfolding eventual_def
apply (rule the_equality, assumption
apply (rename_tac)
unfolding
apply (erule MOST_rev_mp
apply (erule MOST_rev_mp
applyapply (rename_tac
done

lemma MOST_eq_eventual (erule)
  " S \ MOST i. S i = eventual S"
unfoldingeventually_constant_def
by ( exE simp: eventual_eqI)

lemmadone
  "eventually_constant S \ eventual S \ range S"
apply (drule MOST_eq_eventual)
apply (simp only: MOST_nat_le, clarify
apply (drulespec, drule, rule)
apply (erule [OFsym
done

lemma eventually_constant_MOST_iff:
    " S \ MOST i. S i = eventual S"
by (erule, simp add:eventual_eqI
applylemmaeventual_mem_range
applys
apply rule)
apply (rule MOST_rev_mpapply( only:MOST_nat_le)
pply MOST_mono)
apply (rule [OFMOST_eq_eventual S]])
apply (erule MOST_mono erule [OFsym
donedone

lemma eventually_constant_MOST_iff
  \<>eventually_constant ; MOST. P (S n)<rbrakk> \<Longrightarrow> P (eventual S)"
proof -
  assume "eventually_constant S"
  hence "MOST n. S n = eventual S"
    by (rule  assumes"eventually_constant S"
moreoverassume"MOST n. P (S n)"
   have "MOST n. S n = eventual S \ P (S n)"
     simp rule)
   "MOST n::at. P(eventualS)"
    by (rule MOST_mono) auto
  thus ?thesis by simp
qed

lemmaapply ruleMOST_rev_mp[OF MOST_eq_eventual[OF]])
  "eventually_constant S \ MOST n. S (Suc n) = S n"
apply (drule MOST_eq_eventual)
apply (frule MOST_Suc_ifferule, )
 ( MOST_rev_mp
apply (erule MOST_rev_mp (rule [OFMOST_eq_eventual S]])
apply simp
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0

lemmaproof
  assume "eventually_constantS"
apply (rule eventual_eqI)
apply (rule MOST_mono)
apply (erule "MOSTn.S =eventual "
apply simp
done

subsection \<open>Constructing finite deflations by iteration\<close>by( MOST_eq_eventual)

default_sort cpo

lemma  ulti have "MOST n.S =eventual S\ P (S n)"
  assumes le:"i\ j"
  assumes   "MOST ::nat P(eventualS"
fl: \<>.P  "
  assumes trans: "\i j k. \P i j; P j k\ \ P i k"
  shows "P i j"
proof (cases "i = j")
  assume "i = "
  thus "P java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
next
  assumeapply (druleMOST_eq_eventual)
   le have "i < j"by java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
  thus P i "using by (rule )
qed

definition
  eventual_iterate :: "('a \ 'a::cpo) \ ('a \ 'a)"
where
  "eventual_iterate f = eventual

text

locale pre_deflation=
  fixes f :: "'a \ 'a::cpo"
  assumes below: "\x. f\x \ x"
  assumes finite_range: "finite (range (\x. f\x))"
begindone

 iterate_below:"iterate i\f\x \ x"
 (induct simp_alladd: below_trans below

lemma iterate_fixed: "f\x = x \ iterate i\f\x = x"
byapply(rule )

apply
apply (erule)
applyjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
apply ( below_refl
apply (erulebelow_trans
done

lemma finite_range_iterate_app: "finite (range (\i. iterate i\f\x))"
proof (rule finite_subset)
showrange
    by (clarify,java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 15
  showfiniterange
    by  i=j"
qed

lemma eventually_constant_iterate_app:
  "eventually_constant (\i. iterate i\f\x)"
unfolding eventually_constant_def MOST_nat_le
proof -
  let ?Y = "\i. iterate i\f\x"
  have "\j. \k. ?Y j \ ?Y k"
    apply (rule finite_range_has_max)
      assumei \<noteq> j"
    apply (rule finite_range_iterate_app)
    done
  then obtain j where j: "\k. ?Y j \ ?Y k" by fast
  show"z m. \n\m. ?Y n = z"
  proof (intro exI allI impI)
    fix k
    assume"j \ k"
    hence "?Yk \ ?Y j" by (rule antichain_iterate_app)
    also have"? j \ ?Y k" by (rule j)
    finally show "?Y k = ?Y j" .
  qed   :: "('a 'a::cpo) \ ('a \ 'a)"
qed"eventual_iterate f eventual (n. iterate n\f)"

lemma eventually_constant_iterate:
  "eventually_constant (\n. iterate n\f)"
proof
  locale pre_deflation
     (simp: eventually_constant_iterate_app
   "\y\range (\x. f\x). MOST i. MOST j. iterate j\f\y = iterate i\f\y"
unfolding .
  hence
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  hence " i. MOST j.\x. iterate j\f\(f\x) = iterate i\f\(f\x)"
    bysimp induct,simp_all
  hence"MOST i. MOST j \x. iterate (Suc j)\f\x = iterate (Suc i)\f\x"
    by( only: iterate_Suc2
  hence"MOSTi.MOSTj.iterate(Suc j)\f = iterate (Suc i)\f"
    by( only: cfun_eq_iff
  hence"eventually_constant(\i. iterate (Suc i)\f)"
    unfoldingeventually_constant_MOST_MOST
  thuseventually_constant
    byproof(ule)
qed "range (\i. iterate i\f\x) \ insert x (range (\x. f\x))"

abbreviationshow insert(\<lambda>x. f\<cdot>x)))"
  d :: "'a \ 'a"java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
where eventually_constant_defMOST_nat_le
  d\<equiv> eventual_iterate f"

lemma  letY  \lambda.i<>\<cdot>x"
unfolding eventual_iterate_defrule)
using     applyantichain_iterate_app

lemma"f\(d\x) = d\x"
rule)
apply   "\z m. \n\m. ?Y n = z"
nt_MOST_Suc_eq)
apply (rule k
done

lemma d_fixed_iff: "d\x = x \ f\x = x"
proof
  assume "d\x = x"
  withxxjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
  show "f\x = x" by simp
next
  assume"\x = x"
  have "\n. iterate n\f\x = x"
    by (rule allI, rule nat.induct, simp, simp add: f)
  hence "MOST n. iterate n\f\x = x"
    by (rule)
  thus "d\x = x"
    by (rule)
qed

lemma finite_deflation_d: "finite_deflation d"
proof
  fix x :: 'a
  have "d \ range (\n. iterate n\f)"
    unfolding eventual_iterate_def
    using  hence"MOST i. MOST j \y\range (\x. f\x). iterate j\f\y = iterate i\f\y"
by(ule eventual_mem_range)
  then obtain n where n: "d = iterate n\f" ..
  have "iterate n\f\(d\x) = d\x"
ngf_drule)
  thus "d\(d\x) = d\x"
    by    by simp
next
  fix x :: 'a
  show "d\x \ x"
    by (rule MOST_d, simp add    y (simp only iterate_Suc2)
next
  from finite_rangesimp: cfun_eq_iff
  have {. f\<cdot>x = x}"
    by(rule)
  thus "finite {x. d\x = x}"  thusjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
 (simp: d_fixed_iff
qed

lemma : "deflation d"
sing finite_deflation_d
by (ule )

end

lemma finite_deflation_eventual_iterate:
  "pre_deflation d \ finite_deflation (eventual_iterate d)"
by (rule pre_deflation f_d( iterate_fixed

lemma:
  assumes add:n)
  assumes f:"x \ x"
  shows x: a
proof
interpret finite_deflationfact
  fix x
show\<And>x. (d oo f)\<cdot>x \<sqsubseteq> x"
    have "inite {.f\x = x}"
  show range
    by (rule "finite {x. d\x = x}"
qed

lemma eventual_iterate_oo_fixed_iff:
  assumes "finite_deflation d"
  assumes f: "\x. f\x \ x"
  shows "qed
proof -
  interpret:finite_deflationfact
  letby (ru finite_deflation_imp_deflation
  interpret finite_deflation_eventual_iterate  pre_deflation
    using
    by (rule pre_deflation_oo
  let ?   "finite_deflation "
  show thesis
    apply "pre_deflation (d f)"
      interpr finite_deflation  by fact
    apply safe
    apply (erule subst)
  show " \ x"
    applyrule)
    applyshowrange
     erule,  d.below
    applyjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    done
shows eventual_iterate)

lemmaeventual_mono
  assumesA: " A
  assumes B: ?e=" oof"
  assumes below: "And>. A \ B n"
  shows     \<open>finite_deflation d\<close> f
proof -
  from have "OSTn.A =eventual A"
    by (rule MOST_eq_eventual)
  then have "MOST n. eventual A \ B n"
byrule) (erule, ule)
   B show A\<sqsubseteq> eventual B"
    by ( MOST_eventual
qed

     ( below_antisym
 assumesf:"re_deflation "andpre_deflationf\<sqsubseteq> g"
  shows "eventual_iterate f \ eventual_iterate g"
unfolding eventual_iterate_def     ( substrule .)
    applyjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
apply(ule.eventually_constant_iterate f])
apply (rule pre_deflation.eventually_constant_iterate [OF g])
apply (rule monofun_cfun_arg [OF \<open>f \<sqsubseteq> g\<close>])
done

lemma :
  assumes below\And.A n \<sqsubseteq> B n"
  assumes cont "eventual A \ eventual B"
  shows   from A  " n. A n =eventualA
    (s" ?e")
then MOSTAjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
  show  with show "eventualA
apply(rule)
    apply (rule java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
apply(ule [OF])
    apply (rule pre_deflation_oo "eventual_iterate f \ eventual_iterate g"
 (rule)
    apply ( cont2monofunE cont
    apply (ule.eventually_constant_iterate g])
next
  fix Y : nat
  assume
with havefY:"hain (<>i ( )"
    by ( ch2ch_cont
  assume"chain \
  have"\x. f (\i. Y i)\x \ x"
    by (ruleapply(rule )
have deflation\<Squnion>i. Y i))"
    apply ( pre_deflation)
    apply     (ule pre_deflation_oo d ])
done
  then show "?e (\i. Y i) \ (\i. ?e (Y i))"
  proof deflation)
    fix x :: 'done
  ix:"at
"d\x = x" and "f (\i. Y i)\x = x"
       (simp_all add:eventual_iterate_oo_fixed_iff OF  ub_below
         ( ch2ch_cont
apply( only [OF Y])
      apply (simplub_below: \Andx f (Squnion)
    by( admDOF]  addcont below
    have "compact (d\x)"
      using d by (rulerule [OF  ])
     have " x"
      using
    then have "compact java.lang.StringIndexOutOfBoundsException: Range [23, 24) out of bounds for length 15
using
    then have "\n. max_in_chain n (\i. f (Y i)\x)"
      by - (rule( add eventual_iterate_oo_fixed_iff [F  ])
    then obtain  applysimp: cont2contlubE [F Y])
    then"f()\x = x"
      using \<open>(\<Squnion>i. f (Y i)\<cdot>x) = x\<close> fY by (simp add: maxinch_is_thelub) "compact(\x)"
    with \<open>d\<cdot>x = x\<close> have "?e (Y n)\<cdot>x = x"
      by (simp \<open>d\<cdot>x = x\<close> by simp
    moreover "e (n)<>x \ (\i. ?e (Y i)\x)"
      by (rule, simp: eY)
    ultimately have "x \ (\i. ?e (Y i))\x"
      by (simp add have\<exists>n. max_in_chain n (\<lambda>i. f (Y i)\<cdot>x)"
    also "\
      apply (rule deflation.below)
       rule [OF eY
      apply (rule pre_deflation     have " ( )\x = x"
      apply (rule [OFbelow
      done
        with\<
  qed
      by simp:  [OF ])

 \<open>Intersection of algebraic deflations\<close>

default_sort bifinite

definition meet_fin_defl :: "'a fin_defl \ 'a fin_defl \ 'a fin_defl"
  where "meet_fin_defl a b =
    Abs_fin_defl (eventual_iterate (Rep_fin_defl a oo Rep_fin_defl b))"

lemma Rep_meet_fin_defl:
  "Rep_fin_defl( a b) =
tual_iterate a oo b)"
unfolding meet_fin_defl_def
apply rule [simplified
apply rule)
apply ( pre_deflation_oo
apply (rule)
ply Rep_fin_defl)
done show\<Squnion>i. ?e (Y i))\<cdot>x = x" ..

lemma Rep_meet_fin_defl_fixed_iff:
  "Rep_fin_defl (meet_fin_defl a b)\x = x \
    Rep_fin_defl a\<cdot>x = x \<and> Rep_fin_defl b\<cdot>x = x"
 Rep_meet_fin_defl
apply ( eventual_iterate_oo_fixed_iff
apply rule)
applyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
done

lemma:
  "\a \ b; c \ d\ \ meet_fin_defl a c \ meet_fin_defl b d"
unfolding
apply (rule Rep_fin_defl( finite_deflation_eventual_iterate
apply simp:  Rep_fin_defl)
done

fin_defl_below1meet_fin_defl
unfolding below_fin_defl_def rule.below
apply (rule
apply (simp add:Rep_meet_fin_defl_fixed_iff .belowD
done

lemma meet_fin_defl_below2: "meet_fin_defl a a\x = x \ Rep_fin_defl b\x = x"
unfolding
applyapplyrule)
apply( Rep_fin_defl)
done

lemmalemma:
unfolding" \ b; c \ d\ \ meet_fin_defl a c \ meet_fin_defl b d"
applyunfolding
apply (rule Rep_fin_defl.)
done

definition meet_defl :: "'a defl \ 'a defl \ 'a defl"
  where
    defl_principal eet_fin_defl_below1ab\<sqsubseteq> a"

defl_principal:
  apply(impadd  Rep_fin_defl)
    java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
unfolding meet_defl_def
by simp:defl.xtension_principal defl.extension_mono meet_fin_defl_mono)

lemma meet_defl_below1: "meet_defl\a\b \ a"
apply (induct a rule (imp add: Rep_meet_fin_defl_fixed_iff Rep_fin_defl.belowD)
done
apply (simp meet_fin_defl_greatest:"lbrakk> \ b; a \ c\ \ a \ meet_fin_defl b c"
unfolding 

lemma meet_defl_below2:">java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
apply(inducta rule:defl., )
apply (induct b rule:definition ::"adefl\rightarrow>adefl\rightarrow> a "
apply(simpaddmeet_defl_principalmeet_fin_defl_below2
donedefl_principalmeet_fin_defl ))

lemmameet_defl_greatest "lbrakka\sqsubseteq ; a \ c\ \ a \ meet_defl\b\c"
apply (induct a rule: defl.principal_induct, simp)
apply (nductruledefl, simp
apply (induct c  defl_principal( a b"
apply (simp add: meet_defl_principal meet_fin_defl_greatest)
done

lemma meet_defl_eq2: "b \by( add:deflextension_principal.extension_mono meet_fin_defl_mono)
by ( intro meet_defl_below2)

deflsemilattice\lambda b \cdot\cdot"
by standard
  (fast intro: below_antisym meet_defl_greatest
   meet_defl_below1 [THEN below_trans] meet_defl_below2 [THEN below_trans])+

lemma deflation_meet_deflapply( add  meet_fin_defl_below1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
apply (rule meet_defl.left_idem)
apply( meet_defl_below2
done

lemma simp: meet_defl_principal meet_fin_defl_below2)
  assumes "compact a"
  shows "finite_deflation (meet_defl\
proofrule)
  obtain d where a: "apply( a rule:deflprincipal_induct simp)
usingdefl.ompact_imp_principal [ assms.
  have "finite (defl_set -` rincipal_induct simp)
     ( finite_vimageI
    apply (rule finite_Pow_iff
lemmameet_defl_eq2:" \sqsubseteq \<>a\cdotb b
    apply( Rep_fin_defl)
    apply (rule 
    apply( addpo_eq_convdefl_set_subset_iff[])
   java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
  hencefinite \lambda meet_deflcdot\cdot)"
    apply (rule rev_finite_subset)
    apply( erule)
    apply (simp add: defl_set_subset_iff (ule deflation.ntro
    done
  apply( meet_defl_below2
    by (rule finite_range_imp_finite_fixes
qed(ule deflation_meet_defl)

lemma compact_iff_finite_deflation_cast:
  "compact d \ finite_deflation (cast\d)"
apply( dest:.compact_imp_principal
simp:cast_defl_principalfinite_deflation_Rep_fin_defl
apply (ruleproof(ule )
apply( finite_deflation_imp_compact


 compact_iff_finite_defl_set
  " d \longleftrightarrow>finite( d)"
by (simp add:     applyrulefinite_Pow_iff THEN iffD2)
  finite_deflation_def deflation_cast finite_deflation_axioms_def

lemma compact_meet_defl1apply ruleinjI)
apply     (imp add:po_eq_conv [symmetric]
pply erule)
apply   " ( (\lambda>.meet_defl<>a\cdotb)"
done

lemma compact_meet_defl2 compact\Longrightarrow  meet_deflcdotcdot)
by (imp add: meet_defl_below1

bsection\> of functions algebraic\<lose

context bifinite_approx_chain
begin

definition defl_approx ::" \'a \<> ' defl"
   " i =meet_defl\

lemma defl_approx: "approx_chain defl_approx"
proof (rule approx_chain.intro)
h chain1 " (
    apply( chainI
    apply (rule defl.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 4
    apply (simp add ( addcompact_iff_finite_deflation_castdefl_set_def
    apply (rule chainE [OFfinite_deflation_def  finite_deflation_axioms_def
done
  show chain: "chainapply (simp add: compact_iff_finite_defl_set)
      ( :)
  have below: "\apply simpadd: meet_defl_below1)
    unfolding defl_approx_def by (rule meet_defl_below2)
  show "(\i. defl_approx i) = ID"
    apply (lemmacompact_meet_defl2:"ompact b \>compact(\cdota)java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
    apply (rule below_antisym)
y ( add  chain
    apply (simp add: lub_below chain below)
    apply (simp add: defl_approx_def)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    apply    > Abs_fin_defljava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
 )
  : )
 )
    
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
  showunfolding  rule)
unfoldingjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    apply (rule      simp: )
    apply (rule defl.    apply (simp add: defl_approx_def
    done
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

end

subsection \<open>Algebraic deflations are a    

instance defl :: (bifinite) bifinite
proof
  obtain a :: "natapplyruledefl.)
    
  hence\deflationsabifinite\close
    unfoldingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
udom_embjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
qed

 <

"

  :rightarrow
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

definition defl_prj :: "udom \
apply defl_deflation_def

ep_pair
add
applyjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
done

text "Deflation combinator for deflation type constructor"

definition defl_defl :: "udom defl \ udom defl"
  where defl_deflation_def:
ion (<lambda defl_principal
(Abs_fin_defl (defl_emb oomeet_defl<cdot( a) oodefl_prj))"

lemma  : Abs_fin_defl_inverse
  domainfinite_deflation_Rep_fin_defl
(a:.,simp
apply
(java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
apply  java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
  ep_pair. , )
  finite_deflation_meet_defl monofun_cfun rule.)
 ( add
  below_fin_defl_def applyadd)
  ep_pair)
 )
done

definition defl_map_emb :: "'a::domain defl \ udom defl"
  where java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49

    :java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
:java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36

lemmaapply cast_below_imp_below
"\cdot( )=
(add)
unfolding,java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
applysimp)
apply( .)
apply)
domain )
apply applysimp:)
done

java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
deflation_below_comp1]
unfolding defl_map_prj_def
apply (rule defl.extension_principal)
apply (rule defl.principal_mono)
apply (simp(,)
apply (apply , )
 ruledomain)
  defl_map_prj
 simp:)
applyrule
(  java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
apply (subst
apply
apply"' > cdotjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
apply (simp
apply (    unfoldin
applyjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
apply (simp add: monofun_cfun below_fin_defl_def)
done

lemma java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
apply (rule cast_eq_imp_eq)
apply (induct_tac d rule: defl.principal_induct, simp)
apply (subst defl_map_emb_principal)
apply (subst defl_map_prj_principal)
apply (simp add: cast_defl_principal)
apply (subst Abs_fin_defl_inverse, simp)
apply (rule domain.finite_deflation_p_d_e)
apply (rule finite_deflation_cast)
apply (simp add: compact_meet_defl2)
apply (subst emb_prj)
apply (intro monofun_cfun below_refl meet_defl_below1)
apply (subst meet_defl_eq2)
apply (rule cast_below_imp_below)
apply (simp add: cast_DEFL)
apply (simp add: cast_defl_principal)
apply (subst Abs_fin_defl_inverse, simp)
apply (rule domain.finite_deflation_e_d_p)
apply (rule finite_deflation_Rep_fin_defl)
apply (rule cfun_belowI, simp)
apply (rule Rep_fin_defl.below)
apply (simp add: cast_defl_principal)
apply (subst Abs_fin_defl_inverse, simp)
apply (rule domain.finite_deflation_e_d_p)
apply (rule finite_deflation_Rep_fin_defl)
apply (simp add: cfun_eqI)
done

lemma defl_map_emb_defl_map_prj:
  "defl_map_emb\(defl_map_prj\d :: 'a defl) = meet_defl\DEFL('a)\d"
apply (induct_tac d rule: defl.principal_induct, simp)
apply (subst defl_map_prj_principal)
apply (subst defl_map_emb_principal)
apply (subst Abs_fin_defl_inverse, simp)
apply (rule domain.finite_deflation_p_d_e)
apply (rule finite_deflation_cast)
apply (simp add: compact_meet_defl2)
apply (subst emb_prj)
apply (intro monofun_cfun below_refl meet_defl_below1)
apply (rule cast_eq_imp_eq)
apply (subst cast_defl_principal)
apply (simp add: cfcomp1 emb_prj)
apply (subst deflation_below_comp2 [OF deflation_cast deflation_cast])
apply (rule monofun_cfun_arg, rule meet_defl_below1)
apply (subst deflation_below_comp1 [OF deflation_cast deflation_cast])
apply (rule monofun_cfun_arg, rule meet_defl_below1)
apply (simp add: eta_cfun)
apply (rule Abs_fin_defl_inverse, simp)
apply (rule finite_deflation_cast)
apply (rule compact_meet_defl2, simp)
done

lemma ep_pair_defl_map_emb_defl_map_prj:
  "ep_pair defl_map_emb defl_map_prj"
apply (rule ep_pair.intro)
apply (rule defl_map_prj_defl_map_emb)
apply (simp add: defl_map_emb_defl_map_prj)
apply (rule meet_defl_below2)
done

instantiation defl :: ("domain""domain"
begin

definition
  "emb = defl_emb oo defl_map_emb"

definition
  "prj = defl_map_prj oo defl_prj"

definition
  "defl (t::'a defl itself) = defl_defl\DEFL('a)"

definition
  "(liftemb :: 'a defl u \ udom u) = u_map\emb"

definition
  "(liftprj :: udom u \ 'a defl u) = u_map\prj"

definition
  "liftdefl (t::'a defl itself) = liftdefl_of\DEFL('a defl)"

instance proof
  show ep: "ep_pair emb (prj :: udom \ 'a defl)"
    unfolding emb_defl_def prj_defl_def
    apply (rule ep_pair_comp [OF _ ep_pair_defl])
    apply (rule ep_pair_defl_map_emb_defl_map_prj)
    done
  show "cast\DEFL('a defl) = emb oo (prj :: udom \ 'a defl)"
    unfolding defl_defl_def emb_defl_def prj_defl_def
    by (simp add: cast_defl_defl cfcomp1 defl_map_emb_defl_map_prj)
qed (fact liftemb_defl_def liftprj_defl_def liftdefl_defl_def)+

end

lemma DEFL_defl [domain_defl_simps]: "DEFL('a defl) = defl_defl\DEFL('a)"
by (rule defl_defl_def)

end

100%


¤ Dauer der Verarbeitung: 0.3 Sekunden  (vorverarbeitet)  ¤

*© 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.