Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/PVS/algebra/   (Beweissystem der NASA Version 6.0.9©)  Datei vom 28.9.2014 mit Größe 1 kB image not shown  

SSL Defl_Bifinite.thy   Sprache: Isabelle

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


section

theory type
imports"."
begin

 \<open>Lemmas about MOST\<close>

default_sort type

subsection \<open>Eventually constant sequences\<close>

definition
  eventually_constant :: "(nat \ 'a) \ bool"
where
  "eventually_constant S = (\x. MOST i. S i = x)"

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, clarify)
apply simp
apply fast
done

lemma eventually_constantI: "MOST i. S i = x \ eventually_constant S"
unfolding eventually_constant_def by fast

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 (erulejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
done

lemma eventually_constant_Suc_iff:
  "eventually_constant (\i. S (Suc i)) \ eventually_constant (\i. S i)"

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

  , simp:
 
by (rule

subsection lemma eventually_constant_SucD: eventually_constant_Suc_iff ])


   :( > 'a) \<Rightarrow> 'a" where
  "eventual S (x. xjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41

lemma y
 eventual_def)
applyerule)
apply( y)
apply (subgoal_tac:
apply MOST_rev_mpeventually_constant
apply (erule 
apply simperule, add
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4

lemma  spec mp order_refl range_eqI ])
eventually_constant
unfolding eventually_constant_def
 exE )

 :
  "eventually_constant imp
apply (drule MOST_eq_eventual( iffI
 simp , clarify
apply ( (erule, force MOST_rev_mp  [OF
apply( range_eqI ])
done

:"lbrakkS nS\java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
 Seventually_constant
      MOST
applyultimatelyn
y
apply( iffIhencen:   java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
(    Sjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
apply ( MOST_monoforceapply(erule)
apply MOST_rev_mp  [OF
apply (erule
done

lemma MOST_eventual:
  "\eventually_constant S; MOST n. P (S n)\ \ P (eventual S)"
 -
  assume java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  hence" .S n =Sjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
     rule
  moreover assume "MOST
mately n= 
    byassumes
hencen.  )
    by (rule"Andi iijava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  thusij"
qed

lemma eventually_constant_MOST_Suc_eq:
  "eventually_constant S
 MOST_eq_eventual
apply (frulewithhavei"bysimp
apply (erule MOST_rev_mp" j steptransless_Suc_inductjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57

 \<open>A pre-deflation is like a deflation, but not idempotent.\<close> java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22


lemma i
   i, add [OF])
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 ruleMOST_mono

 simp le_Suc_induct
done

subsection \<open>Constructing finite deflations by iteration\<close>

default_sort cpo

lemma le_Suc_induct:
  assumes lerule)
  assumes (1) )
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
   " (\i. iterate i\f\x) \ insert x (range (\x. f\x))"
  shows "P i j"
proof    "finite (insert x (range (\x. f\x)))"
  assume "i e"  j
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
nextjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
 " java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  with le java.lang.NullPointerException
 
qed 

definition ?java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
eventual_iteratejava.lang.NullPointerException
where
  "eventual_iteratef=eventual\java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65

 -

locale =
  by add)
  hence
       eventually_constant_MOST_MOST
begin

lemma iterate_below: "iterate i\f\x \ x"
by (induct MOST.

lemma 
by( i )

   MOST.
apply (erule simp)
apply      Suc
apply (     simp)
apply  
done  .

 " (\i. iterate i\f)"
 ( finite_subset
  show
    by (clarify, 
   "finite(insert x (range (\x. f\x)))"
    by (simp add: finite_range)
qed

lemma eventually_constant_iterate_app:
  "eventually_constant (\i. iterate i\f\x)"
unfoldingeventually_constant_def 
proof " \ eventual_iterate f"
  ?Y="<>i. iterate \cdotf
  have "\j. \k. ?Y j \ ?Y k"
    apply ( finite_range_has_max
 (erule antichain_iterate_app)
    apply (
    done f_d
  thenapply ( MOST_d
show
  proof (apply (rule eventually_consta)
    fix
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 4
    hence "? f_d [where x=]
    also have "?Y j \ ?Y k" by (rule j)
    
  qed :fjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
qed

lemma eventually_constant_iterate:
  "eventually_constant (\n. iterate n\f)"
proof -
  have "java.lang.StringIndexOutOfBoundsException: Range [0, 87) out of bounds for length 54
    by (simp ALL_MOST
  by( MOST_d
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  .
    by (simp     (uleeventual_mem_rangejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  hence  by ( iterate_fixed
bysimp
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
bsimp: iterate_Suc2
  hence "MOST
    by ( only )
  hence  "finitex. f\x = x}"
    unfolding ( finite_range_imp_finite_fixes
   "eventually_constant (i. iterate i\f)"
    by (rule eventually_constant_SucD)
qed

abbreviation
  d :: "'a \ 'a"
where
  "d \ eventual_iterate f"

lemma MOST_d: "MOST n. P (iterate n\f) \ P d"
unfolding eventual_iterate_def
using eventually_constant_iterate by (rule MOST_eventual)

lemma f_d: "f\(d\x) = d\x"
apply (rule MOST_d)
apply (subst iterate_Suc [symmetric])
apply (rule eventually_constant_MOST_Suc_eq)
apply (rule eventually_constant_iterate_app)
done

lemma d_fixed_iff: "d\x = x \ f\x = x"
proof
  assume "d\x = x"
  with f_d [where x=x]
  show "f\x = x" by simp
next
  assume f: "f\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 ALL_MOST)
  thus "d\x = x"
    by (rule MOST_d)
qed

lemma finite_deflation_d: "finite_deflation d"
proof
      by add)
  have
    unfolding
    using eventually_constant_iteratedeflation_d
using 
  then obtain(ulefinite_deflation_imp_deflation
  java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
    using by rule)
  thus pre_deflation_oo
imp add n)
nextassumes f:"<>x.f\x \ x"
  fix : '
  show   d: d by fact
   "\x. (d oo f)\x \ x"
next
  from finite_range
  have "inite x f\x = x}"
    by  "finite( (\x. (d oo f)\x))"
  thusfinite
    by (simp java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
qed

lemma proof-
using d  d by 
le)

end

lemma:
  "re_deflation d \ finite_deflation (eventual_iterate d)"
by     \<open>finite_deflation d\<close> f

lemma pre_deflation_oo:
assumesd
  assumesshow?
  showsoo
proof
et d: finite_deflationdby java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
  fix x
  show ".( oo f) \ x"
         ( below_antisym
   "finite ( (\x. (d oo f)\x))"
    byapply( substrule)
qed

lemma eventual_iterate_oo_fixed_iff:
  assumes "finite_deflation d"
  assumes f: "\x. f\x \ x"
  shows "ventual_iterate (d oo f\x = x \ d\x = x \ f\x = x"
proof :
  interpret d: finite_deflation A: "ventually_constant "
  let  " oo "
  interpretassumesbelow: \<n  n
using
    by (rule pre_deflation_oo)
  let A have "OST n.A n Ajava.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
  show ?thesis
     ( MOST_mono substr below
    with "eventual \ eventual B"
    apply saferule)
    apply (erule
    apply (rule
applyrule)
    apply ( assumes :"re_deflationf and g: " g" and " java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
    applyerule, rule dbelow
     simp
    done
qed

lemma ( pre_deflation [OF)
  assumes A: "eventually_constant A"
  assumescont2cont_eventual_iterate_oo
  assumes"<>n.A n \ B n"
  showseventual
proof -
  from  haveMOST= "
    by (( cont
   have" n. eventual B n"
    by (rule MOST_mono) (erule subst, rule below)
  with B show "eventual \ eventual B"
    by     ( monofunI
qed

lemma eventual_iterate_mono:
  assumes      ( pre_deflation_oo d below
  shows f\<sqsubseteq> eventual_iterate g"
unfolding monofun_cfun_arg
apply (rule eventual_mono)
apply    apply erule [OF])
apply ( pre_deflation [OF)
apply (rule
donefixY :" \ 'b"

   cont fY:"hain\lambda. f Yi)
  assumesrule)
  assumes eY(<>.e(i)"
  shows "cont (\x. eventual_iterate (d oo f x))"
    (is "cont ?e")
proof lub_below
  show "monofun ?e"
    apply rule monofunI
  have"deflation (?e (\i. Y i))"
    apply (rulerule.deflation_d
    apply(ule  [OFbelow
    apply    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    apply (erule (rule.belowI
   
next
f Y ::" \ 'b"
      henc
  with contby(simp_all add:eventual_iterate_oo_fixed_iff[Fdl])
    byrule)
         simp: cont2contlubE cont
  have lub_below: "<>x.f (i. Y i\x \ x"
 rule [ _ Y] simp: , rule)
  have "deflation (?e (\i. Y i))"
    apply (rule pre_deflation.deflation_d)
    apply ( pre_deflation_ooOFdlub_below
    done
thencompact
  proof (rule deflation \<open>d\<cdot>x = x\<close> by simp
    fix x :: 'a
    assume "?e (\i. Y i)\x = x"
    hence       \<open>(\<Squnion>i. f (Y i)\<cdot>x) = x\<close> by simp
      by simp_all: eventual_iterate_oo_fixed_iff [F dlub_below
    hence "(\i. f (Y i)\x) = x"
      ( onlycont2contlubE [ cont
      apply (simp only:     have " Y n)\x = x"
      done
    have (
      using d by (rule finite_deflation.compact)
    then have "compact x"
      using\<open>d\<cdot>x = x\<close> by simp
    then have? ( )<dot
      using \<open>(\<Squnion>i. f (Y i)\<cdot>x) = x\<close> by simp is_ub_thelub add eYjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
    then "
      by - (rule compact_imp_max_in_chain, simp      have(<>.eY i)<> \<sqsubseteq> x"
    then obtainapply( admD adm_deflation])
then f Yn\<cdot>x = x"
      using \<open>(\<Squnion>i. f (Y i)\<cdot>x) = x\<close> fY by (simp add: maxinch_is_thelub) pre_deflation_oo d ])
    with open>d\<cdot>x = x\<close> have "?e (Y n)\<cdot>x = x"
         by ( add eventual_iterate_oo_fixed_iff dbelow
subsection
      by (rule is_ub_thelub
    ultimately meet_fin_defl
      by (Rep_fin_defl Rep_fin_defl
    unfolding meet_fin_defl_def
      apply (rule( Abs_fin_defl_inverse])
      apply (apply( finite_deflation_eventual_iterate
apply rule)
      apply (rule pre_deflation_oo finite_deflation_Rep_fin_defl
ap (rule.below
    finally "(\i. ?e (Y i))\x = x" ..
  qed
qed

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

default_sort bifinite

definition unfolding
  whererule)
    Abs_fin_defl (apply( finite_deflation_Rep_fin_defl

lemma Rep_meet_fin_defl:
  "Rep_fin_defl (meet_fin_defl a b) =
    eventual_iterate (Rep_fin_defl a oo Rep_fin_defl b)"
unfolding meet_fin_defl_def meet_fin_defl_mono
apply (rule Abs_fin_defl_inverse [simplified below_fin_defl_def
apply rule)
apply (rule pre_deflation_oo( addRep_meet_fin_defl_fixed_iff.belowD
apply (rule: " a b \ a"
apply ( Rep_fin_defl)
done

lemma Rep_meet_fin_defl_fixed_iffsimp add:Rep_meet_fin_defl_fixed_iffRep_fin_defl)
  "
    Rep_fin_defl
unfolding Rep_meet_fin_defl
apply (rule below_fin_defl_def
 ( finite_deflation_Rep_fin_defl
 rule.below
done

 meet_fin_defl_mono
  "<> \ b; c \ d\ \ meet_fin_defl a c \ meet_fin_defl b d"
 below_fin_defl_def
apply(rule Rep_fin_defl.belowI
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
done

lemmam: "meet_fin_defl
unfolding below_fin_defl_def
apply (apply (rule
 (imp add:Rep_meet_fin_defl_fixed_iff.belowD
done

lemma meet_fin_defl_below2: "meet_fin_defl a b \ b"
unfolding below_fin_defl_def
apply (by( add deflextension_principal defl
apply (imp add


lemmameet_fin_defl_greatest:"<>\ b; a \ c\ \ a \ meet_fin_defl b c"
unfolding below_fin_defl_def
apply (rule Rep_fin_defl.belowI)lemma meet_defl_below2:meet_defl\<cdot>a\<cdot>b \<sqsubseteq>b"
apply (simp add: Rep_meet_fin_defl_fixed_iff Rep_fin_defl.belowD)
done ( a rule:defl.rincipal_inductsimp

 meet_defl:' defl <>'  \rightarrow' defl
apply  : meet_defl_principal )
     ( ab)"

lemma : "<> <>b
  apply ( b : .principal_induct)
   defl_principal meet_fin_defl b)
unfolding meet_defl_def
 simp . deflmeet_fin_defl_mono

by (ast: below_antisym meet_defl_greatest
apply (induct a rule:  "a .meet_deflabjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
apply (induct b rule: defl.principal_induct, simp)
 (imp:meet_defl_principal)
done

lemma meet_defl_below2: "meet_defl\a\b \ b"
apply (induct a rule: defl.principal_induct rule)
apply (induct b rule
apply( addmeet_defl_principal meet_fin_defl_below2java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
done

lemma meet_defl_greatest: "\a proof (rule finite_deflation_intro
 inductrule .,simp
apply (induct b rule: defl     defl.ompact_imp_principalOF] .
,simp
apply (simp add: meet_defl_principalapplyrule)
done

 meet_defl_eq2:b <>a\Longrightarrow meet_deflcdot<> ="
    apply rule.finite_fixes

interpretation simp: po_eq_conv defl_set_subset_iff symmetric
 done
  (fast intro: below_antisym meet_defl_greatest
   meet_defl_below1 [THEN below_trans] meet_defl_below2 [THEN    " (range(<>b.meet_defl\a<>b)"

lemma deflation_meet_defl: "deflation (larsimp, rev_subsetD
apply(ule deflation.)
apply (rule
 rule)
done

lemma finite_deflation_meet_defl (ule deflation_meet_defljava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
  assumes safe!:defl)
  shows "finite_deflationapply (imp add )
 (ulefinite_deflation_intro
   erule)
    done
  have "finite (defl_setlemma:
    apply  compact<  defl_set"
    apply ( finite_Pow_iff [HEN iffD2]
    finite_deflation_defdeflation_cast )
    apply (rule Rep_fin_defl.finite_fixes
    apply ( injI)
    apply(imp add  defl_set_subset_iffsymmetric]
apply ( rev_finite_subset
hencefiniterange<> \cdot<>)
    apply (rule rev_finite_subset
    lemma :" b \Longrightarrow>compact(\<>a\<>b)
    apply(imp add:defl_set_subset_iff)
    done
subsection \openChain approx on deflations<>
    by
qed (rule deflation_meet_defl)

lemma compact_iff_finite_deflation_cast:
  "compact d \
apply (safe destdefinition defl_approx ::nat<Rightarrow deflrightarrowadefl
apply (wheredefl_approxi  meet_defl<>defl_principal( ))java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
  ave:"hain \. ( approx i))
apply (erule finite_deflation_imp_compact     (ule)
done

lemma compact_iff_finite_defl_set:
  "compact d \ finite (defl_set d)"
bysimp: compact_iff_finite_deflation_cast java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
  finite_deflation_defdeflation_cast)

lemma     done
 compact_iff_finite_defl_set
apply (erule rev_finite_subset    unfoldingdefl_approx_defby simp add chain1
( :defl_set_subset_iffjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
done

 compact_meet_defl2 " b \Longrightarrow (eet_defl<>\
by (subst meet_defl.commute, rule compact_meet_defl1)

subsection \<open>Chain of approx functions on algebraic deflations\<close>

context    applsimp: contlub_cfun_funchain)
begin

definition defl_approx :: "nat \ 'a defl \ 'a defl"
  where"defl_approx i = meet_defl\defl_principal (Abs_fin_defl (approx i)))"

lemma defl_approx: "approx_chain defl_approx"
proof (rule approx_chain.intro)
  have chain1: "chain (\i. defl_principal (Abs_fin_defl (approx i)))"
    apply (rule chainI)
    apply (rule cast_below_imp_below
    apply (    apply (simpadd contlub_cfun_arg chain1)
    apply (    apply (simpadd: cast_defl_principal Abs_fin_defl_inverse)
    done
  show chain: "chain (\i. defl_approx i)"    done
    unfolding defl_approx_def by (simp add: chain1)
  have below: "\i d. defl_approx i\d \ d"
    unfolding defl_approx_defby( meet_defl_below2
  show      defl_approx_def
    apply (rule cfun_eqI, rename_tac d, simp)
    apply (rule below_antisym)
    apply( add contlub_cfun_funchain
    apply (simp add: lub_below chain below)
    )
    apply (simp add: lub_distribs chain1)
    apply (rule meet_defl_greatest [OF _ below_refl])
    apply (rule cast_below_imp_belowqed
    apply (simp add: contlub_cfun_arg chain1)
    apply (simp add: cast_defl_principal Abs_fin_defl_inverse)
    apply (rulejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    done
  show "\i. finite_deflation java.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 0
    unfolding defl_approx_def
    apply (rule finite_deflation_meet_defl)
     ( deflcompact_principal
    done
qed

end

subsection \open>Algebraic  are   domain\close>

instance defl :: (bifinite) bifinite
proof
  obtain a :: "nat \ 'a \ 'a" where "approx_chain a"
    using bifinite ..
  hence "bifinite_approx_chain a"
    unfolding bifinite_approx_chain_def .
  thus "\(a::nat \ 'a defl \ 'a defl). approx_chain a"
    by (fast intro: bifinite_approx_chain.defl_approx)
qed

subsection \<open>Algebraic deflations are representable\<close>

default_sort "domain"

definition defl_emb :: "udom defl \ udom"
  where "defl_emb = udom_emb (bifinite_approx_chain.defl_approx udom_approx)"

definition defl_prj :: "udom \ udom defl"
  where "defl_prj = udom_prj (bifinite_approx_chain.defl_approx udom_approx)"

lemma ep_pair_defl: "ep_pair defl_emb defl_prj"
unfolding defl_emb_def defl_prj_def
apply 
apply (rule bifinite_approx_chainsubsection \<open>Algebraic deflations arerepresentable\close>
apply (simp add: default_sort "domain"
done

definitiondefl_emb::"udom defl \ udom"

definition defl_defl :: "udom defl \ udom defl"
  where defl_deflation_def:
  "defl_defl = defl.extension (\a. defl_principal
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma cast_defl_defl:
  "cast\(defl_defl\a) = defl_emb oo meet_defl\a oo defl_prj"
apply (induct a rule: defl.principal_induct, simp)
apply (substdefl_deflation_def)
apply (subst 
apply lemma ep_pair_defl: "ep_pair defl_emb defl_prj"
  ep_pair.finite_deflation_e_d_p ep_pair_defl
  finite_deflation_meet_defl monofun_cfun)
apply (simp add: cast_defl_principal
ow_fin_defl_def Abs_fin_defl_inverse
  ep_pair.finite_deflation_e_d_p ep_pair_defl
  finite_deflation_meet_defl monofun_cfun)
done

definition defl_map_emb :: "'a::domain defl \ udom defl"
  where "defl_map_emb = defl_fun1 emb prj ID"

definition defl_map_prj :: "udom defl \ 'a::domain defl"
  where "defl_map_prj = defl.apply (rule bifinite_approx_chain.defl_approx)

java.lang.StringIndexOutOfBoundsException: Range [0, 5) out of bounds for length 4
  "java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
    defl_principal (Abs_fin_defl (emb oo Rep_fin_defl a oo prj))"
unfolding defl_map_emb_def(>a.
     defl_emb \>defl_principal  defl_prj)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
apply (rule defl.principal_mono)
apply(simpadd below_fin_defl_defAbs_fin_defl_inverse monofun_cfun
       .finite_deflation_e_d_p finite_deflation_Rep_fin_defl)
apply simp
done

lemma defl_map_prj_principal:
  "(defl_map_prj\(defl_principal a) :: 'a::domain defl) =
apply (nduct a rule deflprincipal_induct, simp)
unfolding defl_map_prj_def
apply (rule deflapply (ubst defl.extension_principal)
apply (rule defl.principal_mono)
apply (simp add: below_fin_defl_def)
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 Abs_fin_defl_inverse simp
apply( domainfinite_deflation_p_d_e
apply (apply(imp: cast_defl_principal
apply (simp add: compact_meet_defl2
bst emb_prj
apply  finite_deflation_meet_deflmonofun_cfun)
apply (simp add: monofun_cfun below_fin_defl_def)
done

lemma defl_map_prj_defl_map_emb: "defl_map_prj\(defl_map_emb\d) = d"
apply (rule cast_eq_imp_eq)
apply (induct_tac d rule: defl.principal_induct
apply (substdefinition defl_map_prj::"udomdefl \ 'a::domain defl"
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:  defl_map_emb<>defl_principala)=
apply (simp add: cast_defl_principal
bst 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 ( add: cast_defl_principal
apply (substapply (uledeflprincipal_mono
apply (rule domain.finite_deflation_e_d_p
apply (       .finite_deflation_e_d_p 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"
lemma defl_map_prj_principal:
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  [OF deflation_cast deflation_cast]java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
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 (rulecompact_meet_defl2simp
done

lemmaapply(rule .finite_deflation_p_d_e
  "ep_pair defl_map_emb defl_map_prj"
applyapply( add compact_meet_defl2
apply (rule defl_map_prj_defl_map_emb)
apply (simp addapply (intro monofun_cfunbelow_reflmeet_defl_below1)
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 :: ' 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)"
g 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.12 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.