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

Benutzer

Impressum FrecR.thy

  Sprache: Isabelle
 

sectionWell-founded relation on names
theory  relation on nam on name begin

lemmas omega_iff_sats 
  fun_plus_iff_sats FOL_sats_iff

texttermfrecR
us to define forcingusefine<

(* MOVE THIS. absoluteness of higher-order composition *)
definition
  is_hcomp :: "[i==>o,i==>i==>o,i==>i==>o,i,i] ==> o" where
  "is_hcomp(M,is_f,is_g,a,w) z[M]. is_g(a,z) is_f(z,w)" 

lemma (in
  assumesdefinition
    is_f_absAnda z. M(a) ==> is_flongleftrightarrow
    is_g_abs:" z[M]. is_g(a,z)
    :" M(g(a))"
    ( "w
  shows
    "is_hcomp(M,is_f,is_g,a,w) \<is_f_abs"a z. M(a) ==> is_g(a,z)
  unfolding is_hcomp_def using assms by simp

definition
  hcomp_fm :: "[
  "(g,,) equv xssAdpsc)0,(,ucw)

lemma sats_hcomp_fm:
"(Mis_f,aw longleftrightarrow w = f(g(a))"
b z. a b\\i>na ==>M ==>
                 is_f(nth(a,Cons(z,env)),nth(b,Cons((z,eenv))) 🚫,a,w Exists(And(pg(succ(a),0),pf(0,succ(w))))"
    and
    g_iff_sats:"\nat ==>naM \<ngrightarrowghtarrowa b z. anat ==>iM ==>
                is_g(nth(a,Cons(z,env)),nth(b,Cons(z,env)))
    and
    a"in" "env
  shows
    "sats(M,hcomp_fm(pf,pg,a,w),env) \<proof M" "ww
proof -
  have "sats(M, pf(0, succ(w)), Cons(x, env))  is_f(x,nth(w,env))" if "xM" "wnat" for x w
    using f_iff_sats[of 0 "succ(w)" x] that by simp
  moreover
  have "sats(M, pg(succ(a), 0), Cons(x, env))  is_g(nth(a,env),x)" if "xM" "anat" for x a
    using g_iff_sats[of "succ(a)" 0 x] that by simp
  ultimately
  show ?thesis unfolding hcomp_fm_def is_hcomp_def using assms by simp
qed


(* Preliminary *)
definition
  ftype :: "i==>i" where
  "ftype  0 x] by simp

definition
  name1 :i\Rightarrow>i" where
  "name1 [of  x]that simp

definition
name2Rightarrow>i" where
  "name2

definition
  ftypeRightarrowi" where
  "cond_of()((x))))"

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  "ftype() = f"
  "name1name2 fst(snd(snd(x)))"
  "name2( :: "i==>
  "cond_of(,n2c<angle) = c"
  unfolding ftype_def name1_def name2_decond_of_def
  by simp_all

definition eclose_n :: "[i==>
  "eclose_n(name,x) = eclose({name(x)})"

definition
  ecloseN i" where
  "(x) = eclose_n,x) \union eclose_n(ame2x)

lemma :
<langle,c<)"
  "n2  ecloseN(>"
  unfolding ecloseN_def eclose_n_def
  using by simp_a

lemmas names_simp = components_simp(2) components_simp(3)

lemma ecloseNI1 :
  sumes" \in eclose() eclose(n2
  shows
  unfoldingi\Rightarrow i" wh
  using assms eclose_sing names_simp
  by auto

lemmas ecloseNI = ecloseNI1

lemma ecloseN_mono :
  assumes " ecloseN(,,c<>"
  shows ""n2 \\> clsN\langle,n12c<>"
proof -
   <nu\n_<close>
  consider (a) "ueclose({name1(x)})" | (b) "u components_simp arg_into_eclose by auto
    unfolding ecloseN_def eclose_n_def by auto
  then
  show ?thesis
  proof cases
    shows "f,n1n2,
    with
    showecloseNI
      unfolding
      using eclose_singE ecloseN(x)" "name1(x) n
  next
    case b
    with 
 showthesis
 unfolding ecloseN_def eclose_n_def
 using eclose_singE[OF b] mem_eclose_trans[of u "name2(x)"] by auto
 qed
 


(* ftype(p) \<equiv> THE a. \<exists>b. p = \<langle>a, b\<rangle> *)


definition
  is_fst :: "(i==>
  "     a
                       (🚫

definition
  fst_fm :: "[i,i] ==>
  "fst_fm>Or(Exists(pair_fm(succ(t),0,succ(x))),
                   And(NegusinggEse_trans(x)" ] by auto

lemma sats_fst_fm :
  "[ x  nat; y  list(A) ]
    \    show 
        is_fst]eclose_transjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  bydd_ef

definition 
  is_ftypeis_fst<equiv z[M]. pair(M,t,z,x)) 
  "is_ftype

definition
  ftype_fm :: " :,]<Rightarrow
  "ftype_fm Or(Exists(pair_fm(succ(t),0,succ(x))),

lemma sats_ftype_fm :
  "[)"
    ==>
         "<lbrakk> x  nat;env>list(A) ]
  unfolding ftype_fm_def
  by (simp add(##A, nth(,), nthenv)"

lemma is_ftype_iff_sats:
  assumes
    "nth
  shows
    is_ftype(##A,aa,bb)   sats(A,ftype_fm(a,b), envjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
  using sats_ftype_fm :
  bysimp

definition
  is_snd\Rightarrow)Rightarrowi==>o" where
  "is_snd(Mis_ftype(#A nthx,), nth))"
                       (<>(w[M]. pair(M,z,w,x)) \and empty(M,t))"

definition
  snd_fm:
  java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
                   And(Neg(Exists(stsempty_fm

lemma sats_snd_fm :
  "[ longlefrigarow ts(,typema,,e)"
    ==>(x,y)),env
        is_snd(##A, nth(x,env(y,env"
  by (simp add: snd_fm_def is_snd_def)

definition
  is_name1 :: "(i==>o)==>i==>i==>o" where
  "is_name1(M,x,t2)  (simp:sats_ftype_fm)

definition
  name1_fm: "[,i] \Rightarrowi"re
  "ame1_fm((x,) \equivpf(fst_,snd_fm,x,t)" 

lemma sats_name1_fm :
  "[ nat; y list(A) ]
    ==> sats(A, name1_fm(x,y), env)
        is_name1(##A, nth(x,env), nth(y,env))"
  unfolding name1_fm_def(x,t) (t),succ
 "is_fst(##A)" _ fst_fm simp

lemma is_name1_iff_sats:
  assumes
    "nth(a,env) = aa" "nth(b,env) =bb""a<in>nat""\in""env
  shows
    "is_name1(##A,aa,bb)   sats(,name1_fm, env
  using
  by (simp add:sats_name1_fm(#,env

definition
  is_snd_snd
  "s_snd_snd(M(M,x,t <equiv>> is_cm(ssd()isn(),x,t)"

definition
  snd_snd_fm : [,Rightarrow
  "snd_snd_fm(x,t) is_hcomp(M,is_fst(M),is_snd(M),x,t2)"

lemma sats_snd2_fm :
  "[ x
    ==>(x,y), env)
        is_snd_snd(##A, nth(x,env), nth(y,env))"
  unfolding _snd_def
    sats_hcomp_fm[of A "is_snd(##A)" _ snd_fm

definition
  is_name2 :: "(i==>o)==>i==>i==>o" where
  "is_name2(M,x,t3) is_hcomp(M,is_fst(M),is_snd_snd(M),x,t3)"

definition
  name2_fm :: "[i,i] ==> i" where
  "name2_fm(x,t3) hcomp_fm(fst_fm,snd_snd_fm,x,t3)"

lemma sats_name2_fm :
  "[ x nat; y nat;env list(A) ]
    ==> sats(A,name2_fm(x,y), env)
        is_name2(##A, nth(x,env), nth(y,env))"
  unfolding name2_fm_def is_name2_def using sats_fst_fm sats_snd2_fm
    sats_hcomp_fm[of A "is_fst(##A)" _ fst_fm "is_snd_snd(##A)"by simp

lemma is_name2_iff_sats:
  assumes
    "nth(a,env) = aa" "nth(b,env) = bb" "anat" "bnat" "env list(A)"
  shows
    "is_name2(##A,aa,bb) sats(A,name2_fm(a,b), env)"
  using assms
  by (simp add:sats_name2_fm)

definition
  is_cond_of :: "(i==>o)==>i==>i==>o" where
  "is_cond_of(M,x,t4) is_hcomp(M,is_snd(M),is_snd_snd(M),x,t4)"

definition
  cond_of_fm :: "[i,i] ==> i" where
  "cond_of_fm(x,t4) hcomp_fm(snd_fm,snd_snd_fm,x,t4)"

lemma sats_cond_of_fm :
  "[ x nat; y nat;env list(A) ]
    ==> sats(A,cond_of_fm(x,y), env)
        is_cond_of(##A, nth(x,env), nth(y,env))"
  unfolding cond_of_fm_def is_cond_of_def using sats_snd_fm sats_snd2_fm
    sats_hcomp_fm[of A "is_snd(##A)" _ snd_fm "is_snd_snd(##A)"by simp

lemma is_cond_of_iff_sats:
  assumes
    "nth(a,env) = aa" "nth(b,env) = bb" "an \<Longrightarrow (x,y), env) (##A, nth(x,env), nth(y,env))
  ows
    "is_cond_of
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 13
   (simp:sats_cond_of_fm

lemma components_type[TC] :
  assumes java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
  shows
    "ftype_fm(a,b)formula"
    "name1_fm(a,b)
    "name2_fm(a,b)(imp add:satssatname_f)
    "cond_of_fm(is_cond_ofi==>i==>o" where
  sing assms
  unfolding ftype_fm_def fst_fm_def snd_fm_def snd_snd_fm_def name1_fm_def name2_fm_def
    cond_of_fm_def hcomp
  by simp_all

lemmas sats"cond_of_fm>hcomp_fm(snd_fm,snd_snd_fm,x,t4

lemmas :
  is_cond_of_iff_sats; y \in> nat  

lemmas components_defs ftype_fm_def snd_snd_fm_def
  name1_fm_def cond_of_fm_def


definition
  is_eclose_n is_cond_of_iff_sats:
  "is_eclose_n(N,is_name,en,t)
        

definition
  eclose_n1_fm :: "[i,i] ==>shows
  "eclose_n1_fmmt) \equiv> Exists(Exists(And(And(name1_fm(t#+2,,0),si(0,1)),
                                        assms

definition
  eclose_n2_fm :: "[i,i ==>i"where
  "eclose_n2_fm(m,t)  Exists "a\<innatnat"
                                       (1m+))

definition
  is_ecloseN :: "[i==>formula"
  "is_ecloseN(N,en,t) formula"
                is_eclose_n(N"
                union(N,en1en2en)"

definition 
  ecloseN_fm "i \> where
  "ecloseN_fm(enjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                            And(eclose_n2_fm(0,#2,on_fm,n#)))
lemmaecloseN_fm_type [TC] :
  "[ en nat ; t ==> formula"
  unfolding ecloseN_fm_def eclose_n1_fm_def eclose_n2_fm_def by simp

lemma sats_ecloseN_fm [simp]:
  "[
    ==>(A, ecloseN_fm(en,t), env) ,env),nth(t,env))"
  oseN_fm_defose_n1_fm_def___is_eclose_n_def
  using  nth_0(m+))
    is_singleton_iff_sats[symmetric]
  by auto

(* Relation of forces *)::"i,i \<Rightarrow 
definition
  frecR :: "==> o" where
  "frecR(x,y) 
    (ftype(x) = 1  ftype(y) = 0 
       (name1(x) 
    ftypey)=  1<nd name1(x) = name1(y)  name2(x) y))"

lemma frecR_ftypeD :
  assumes "frecR(x,y)"
  shows "(ftype(x) = 0  en1<>n2[N].
  using unfolding by auto

lemma frecRI1: java.lang.NullPointerException
  ding frecR_dedef by (simpadd:coments_simp)

lemma frec': "s <> , q\rangle,<>0, n1, q'<>)
  unfolding frecR_def by (simp add:components_simp)

lemma frecRI2: "s An(ecclose2m(t#2),union_m(,0,en#+2))))))"
  unfolding ecloseN_fm_type [TC] :

lemma frecRI2': "s domain(n1) domain(n2) ==> frecR( en nat ] formula"
   ecloseN_fm_defdefse_n2_fm_defimp


lemma sats_ecloseN_fm
  unfolding frecR_def\lbrakk eninnat; t  nat ; env 

lemma frecRI3': "s close_n1fm_def eclose_n is_eclose_n_def
  unfolding fusi nth_0 nth_ConsI sats_name1_fm sats_name2_fm

lemma frecR_iff :
  "frecR(x,y) 
    (ftype(x) = 1 frecR: \Rightarrow o" where
      (x) \<in  domain(name2(y)) (x) == name1(y)
    (ftype(x) = 0 ftype(y) = 0
  unfolding frecR_def ..      \> (name1(x) domain(name1(y)) \>d(name2(y)) name2(x) = name2(y))))

lemma frecR_D1 :
  "frecR(x,y) Longrightarrowftype(y) = 0 ==> ftype(x) = 1 
      (name1 "frecR(x,y)"
  
  by auto

lemmaRI1\in domainn1 s ) <Longrightarrow (\langle>1, s, n1, q n2,q'\>"
  "frecRy)<ongrightarrow 
      ftype(x) = 0 
  using frecR_iff: "s \<>  domain(n2) ==>1, s, n2, q0, n1, n2, q'
  by auto

lemma_DI
  assumes "frecR( domain(n1) frecR(<langle1 s, n2, q0, n1, n2, q'
  shows ecRI3 "\langle>s, r\rangle n2 ==> frecR(0, n1, s, q1, n1, n2, q'
  using assms unfolding frecR_def by (force simp add:components_simp)

(*
name1(x) domain(name2(y))
            (name2(x) = name1(y) frecR_iff :
           name2(x)
definition
  is_frecR :: "[\Rightarrowi>o" where
  "is_frecR(M,x,y) )in domain(name1(y))  (name2 ame1<orname2(x) = name2(y))))
  is_ftypeM,ftx <and_name1n1x<and (M,x,n2x) 
  is_ftype(M,y,fty)  is_name1(M,y,n1y)  is_name2(M,y,n2y (ftype(x) = 0  name1(x) = name1)\and2( <>main
           is_domain 
          ((name1 domain(name1(y))  (name2(x) = name1(y) 
           

schematic_goal ftype(y) = 1 ==> 
  assumes ftype(y) =  1 e2 domain(name2
    "i\< auto,)"
  shows
    "is_frecR(##A,a,b) \<longleftrightarrow"
  unfolding is_frecR_def is_Collect_def
  by (insert assms ; (rule sep_rules' cartprod_iff_sats co (name2(x) = name(y)
        | simp del:sats_car\>nm1x) = name1(y)\and name2(x) domain(name2(y))*)

synthesize "frecR_fm" from_schis_frecR :::: "[==> o" where

(* Third item of Kunen observations about the trcl relation in p. 257. *)
lemma eq_ftypep_not_frecrR:
  assumes "ftype(x) = ftype(y)"
  shows "¬
  usingassms by force


definition
  rank_namesRightarrow i" where
  "rank_names(x) 

lemma rank_names_types [TC: 
  shows "Ord(rank_names(x))"
  unfolding rank_names_def max_def using Ord_rankis_frecRA,,b <longleftrightarrow(i)nv

definitionunfolding is_Collect_def  
  mtype_form :: "i ==> i" where
  "mtype_form(x) s ; (rule sep_rules' cartprod_iff_sats componentsiff_sats

definition
  type_form :: "==> "frecR_fm"from_schematic sats_frecR_fm_auto
  "type_form(

lemma type_form_tc [TC]:
  shows "type_form(x) ey"
  unfolding type_form_def mtype_form_def by auto

lemma frecR_le_rnk_names :
  assumes "frecR(x,y)"
  shows "rank_names(x)
proof -
  obtain a b c  rank_names: i \Rightarrow> i" wher
    H: "a = name1(x)" "b = name2(x)
    "c = name1(y)"showsrank_names())"
    "(a  domain(c)domain(d)  (b=c  b = d  unfolding rank_names_defmax_def using Ord_Un
    using assms unfolding frecR_def by force
  then\Rightarrow> i"
  consider
    (m) " []: 
    | (n) "a mtype_form_def by auto
    | (o) "lemma frecR_le_rnk_names:
    by auto
  then show ?thesis proofjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    case m
    then 
    have "rank(a) < rank(c)" 
      using eclose_rank_lt  in_dom_in_eclose  by simp
    with  domain(c) b = d) "
 how ?thesis unfolding rank_names_def using Ord_rank max_con max_cong2 leI by auto
 nextnext
 by auto
 then
 have "rank(a) < rank
 using eclose_rank_lt in_dom_in_eclose by simp
 rank(a) < rank(d)

    showopen(a) < rank(c)
      using Ord_rank max_cong2 max_cong max_commutesnext
  th
    casehaveank(d)"
    then
    have "rank(b) < rankd") "rank(a) = rank(c)" (is "?a = _")
      using eclose_rank_lt in_dom_in_eclose using eclose_rank_lank_lt in_dom_in_e_in_eclose e by simp
    with H
    show ?thesis unfolding rank_names_def
      using Ord_rank max_commutes max_cong2[OF leI[OF ], of ?a] by simp
  show ?thesis unfldng rank_
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 3


definitionshow isoldg rank_names_def
  Γ?b < ?d], of ?a] by simp
  "\<Gamma>(x) = 3 ** rank_names(x) ++ type_form(x)"

lemma \<Gamma>_type [TC]: 
  shows "Ord(<Gamma(x))"
  unfolding \<Gamma>_def by simp


lemma<>_no: 
  assumes "frecR(x,y)"
  shows "\<Gamma>(x) < \<Gamma>(y)"
proof -
  have F: "type_form(x)from sms
    usingtIby p_alll
  from
  have A: "rank_names(x) \<lehave?)oldingngnames_defgOrd_rankx_def
    using frecR_le_rnk_names by simp
  then
  have "Ord(?y)" then
  note leE[OF \roofs
  then
  show ?thesis
  proof(cases)
    case 1
    then 
    show java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
  next
    case 2
     ") =0 \<>ftype(y) = 1" | (b) "ftype(x) = 1 \<and> ftype(y) = 0"
      using sigma\<in> domain(?\<sigma>') \<union> domain(?\<tau>')")
    then show ?thesis proof(cases)
      
      then 
      have "type_form(y) = 1" 
        using type_form_def imp
      from b
      have H: "name2(x)  name1me11)\or name2x) = name2(y) " (is "?\<tau> = ?\<sigma>' \<or> ?\<tau> = ?\<tau>'")
        "name1(x) \<in> domain(name1(y)) \<union> domain(name2(y))" 
        (is "?\<sigma> \<in> domain(?') \<union> domain(?\<tau>')")
        using assms unfolding type_form_def frecR_def by auto
      then 
      have E: "rank(?<tau>= nk\<') \<or> rank(?\<tau>) =ank<>)by auto
      from H
      consider (a) "rank(?\<sigma>) < rank(?\<sigma> 
        using eclose_rank_lt in_dom_in_eclose by force
      then
      have "rank(?\<sigma>) < rank(?\<tau>)" proof (cases)
        case a
        with \<open>rank_names(x) = rank_names(java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
        show ?thesis nfoldingank_names_defype_form_defform_defype_form_defsinggD2  ajava.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 95
            E assms Ord_rank by simp
      next
        case b
        with \<open>rank_names(x) = rank_names(y) \"ond_of_of\> A4 cond_ofond_of()<in> A4"
        show ?thesis unfolding rank_names_def mtype_form_def type_form_def 
          using max_D2[OF _ b] max_commutes E assms then ?esis
      
      And\<tau> \<theta> p.  p \<in> A2 \<Longrightarrow> \<lbrakk><ndq \<sigma>. \<lbrakk> q\<in>A2 ; \<sigma>\<in>domain(\<tau>) \<union> domain(\<theta>)\<rbrakk> \<Longrightarrow> Q(1,\<sigma>,\<tau>,q) \and Q(1,\<sigma>,\<theta>,q)\<rbrakk> \<Longrightarrow> Q(0,\<tau>,\<theta>)
      have "type_form(x) = 0" unfolding type_form_def mtype_form_def by simp
      with \<open>rank_names(x) = rank_names(y) \close \<open>type_form(y) = 1\<close> \<open>type_form(x) = 0\<close>
      sis
        unfolding \<Gamma>_def by auto
    next
      a
      then 
      have "name1(x) = name1(y)" (is "?\<sigma> = ?\<sigma>'") 
        "name2(x) \<in> domain(name2(y))" (is "?\<au><in omainmain\<')")
        "type_form(x) = 1"
        using assms unfolding type_form_def frecR_def by auto
      then
      have "rank(?\<sigma>) = rank(?\<sigma>')" "rank(?\<tau>) < rank(?\<> 
        using  eclose_rank_lt in_dom_in_eclose by simp_all
      with \<open>rank_namesx =rank_namesmesy \> 
      aveanknk?<tau)\e rank(?\<sigma>')" 
        unfolding rank_names_def using Ord_rank max_D1 by simp
      with a
      have "type_form(y) = 2"
        unfolding type_form_def mtype_form_def using not_lt_iff_le       have "<sigma>\<in> eclose(?\<theta>)" 
      with \<open>rank_names(x) = rank_names(y) \<close> \<open>type_form(y) = 2\<close> \<open>type_form(x) = 1\<close>
      hesis
        unfolding \<Gamma>_def by auto
qed
  qed
qed

definition
  frecrel :: "i \<Rightarrow> i" where
  "frecrel(A) \<equiv> Rrel(frecR,A)"

lemma frecrelI : 
  umesx<n A" "y\<in>A" "frecR(x,y)"
  shows "\<langle>x,y\<rangle>\<in>frecrel(A)"
  assmsoldingfrecrel_defl_deffy tojava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

lemma frecrelD :
  assumes \<langle>,\rangle\<in> frecrel(A1\<times>A2\<times>A3\<times>A4)"
  shows "ftype(x) \<in> A1" "ftype(x) \<in> "
    "name1(x) \<in> A2" "name1(y) \<in> A2" "name2(x) \<in> A3" "name2(x) \<in> A3" 
    "cond_of(x) \<in> A4" "cond_of(y) \<in> A4" 
    "frecR(x,y)"
  using assms unfolding frecrel_def Rrel_def ftype_def by (auto simp add:components_simp)

lemma wf_frecrel : 
  shows "wf(frecrel(A))"
proof -
  have "frecrel(A) \<subseteq> measure(A,\<Gamma>)"
    unfolding frecrel_def Rrel_def measure_def
    using \<Gamma>_mono by force
  then show ?thesis using wf_subset wf_measure by auto
qed

lemma core_induction_aux:
  fixes A1 A2 :: "i"
  assumes
    "Transset(A1)"
    "\<And>\<tau> \<theta> p.  p \<in> A2 \<Longrightarrow> \<lbrakk>\<And>q \<sigma>. \<lbrakk> q\<in>A2 ; \<sigma>\<in>domain(\<theta>)\<rbrakk> \<Longrightarrow> Q(0,\<tau>,\<sigma>,q)\<rbrakk> \<Longrightarrow> Q(1,\<tau>,\<theta>,p)"
    "\<And>\<tau> \<theta> p.  p \<in> A2 \<Longrightarrow> \<lbrakk>\<And>q \<sigma>. \<lbrakk> q\<in>A2 ; \<sigma>\<in>domain(\<tau>) \<union> domain(\<theta>)\<rbrakk> \<Longrightarrow> Q(1,\<sigma>,\<tau>,q) \<and> Q(1,\<sigma>,\<theta>,q)\<rbrakk> \<Longrightarrow> Q(0,\<tau>,\<theta>,p)"
  shows "a\<in>2\<times>A1\<times>A1\<times>A2 \<Longrightarrow> Q(ftype(a),name1(a),name2(a),cond_of(a))"
proof (induct a rule:wf_induct[OF wf_frecrel[of "2\<times>A1\<times>A1\<times>A2"]])
  case (1 x)
  let ?\<tau> = "name1(x)" 
  let ?\<theta> = "name2(x)"
  let ?D = "2\<times>A1\<times>A1\<times>A2"
  assume "x \<in> ?D"
  then
  have "cond_of(x)\<in>A2" 
    by (auto simp add:components_simp)
  from \<open>x\<in>?D\<close>
  consider (eq) "ftype(x)=0" | (mem) "ftype(x)=1"
    by (auto simp add:components_simp)
  then 
  show ?case 
  proof cases
    case eq
    then 
    have "Q(1, \<sigma>, ?\<tau>, q) \<and> Q(1, \<sigma>, ?\<theta>, q)" if "\<sigma> \<in> domain(?\<tau>) \<union> domain(?\<theta>)" and "q\<in>A2" for q \<sigma>
    proof -
      from 1
      have A: "?\<tau>\<in>A1" "?\<theta>\<in>A1" "?\<tau>\<in>eclose(A1)" "?\<theta>\<in>eclose(A1)"
        using  arg_into_eclose by (auto simp add:components_simp)
      with  \<open>Transset(A1)\<close> that(1)
      have "\<sigma>\<in>eclose(?\<tau>) \<union> eclose(?\<theta>)" 
        using in_dom_in_eclose  by auto
      then
      have "\<sigma>\<in>A1"
        using mem_eclose_subset[OF \<open>?\<tau>\<in>A1\<close>] mem_eclose_subset[OF \<open>?\<theta>\<in>A1\<close>] 
          Transset_eclose_eq_arg[OF \<open>Transset(A1)\<close>] 
        by auto         
      with \<open>q\<in>A2\<close> \<open>?\<theta> \<in> A1\<close> \<open>cond_of(x)\<in>A2\<close> \<open>?\<tau>\<in>A1\<close>
      have "frecR(\<langle>1, \<sigma>, ?\<tau>, q\<rangle>, x)" (is "frecR(?T,_)")
        "frecR(\<langle>1, \<sigma>, ?\<theta>, q\<rangle>, x)" (is "frecR(?U,_)")
        using  frecRI1'[OF that(1)] frecR_DI  \<open>ftype(x) = 0\<close> 
          frecRI2'[OF that(1)] 
        by (auto simp add:components_simp)
      with \<open>x\<in>?D\<close> \<open>\<sigma>\<in>A1\<close> \<open>q\<in>A2\<close>
      have "\<langle>?T,x\<rangle>\<in> frecrel(?D)" "\<langle>?U,x\<rangle>\<in> frecrel(?D)" 
        using frecrelI[of ?T ?D x]  frecrelI[of ?U ?D x] by (auto simp add:components_simp)
      with \<open>q\<in>A2\<close> \<open>\<sigma>\<in>A1\<close> \<open>?\<tau>\<in>A1\<close> \<open>?\<theta>\<in>A1\<close>
      have "Q(1, \<sigma>, ?\<tau>, q)" using 1 by (force simp add:components_simp)
      moreover from \<open>q\<in>A2\<close> \<open>\<sigma>\<in>A1\<close> \<open>?\<tau>\<in>A1\<close> \<open>?\<theta>\<in>A1\<close> \<open>\<langle>?U,x\<rangle>\<in> frecrel(?D)\<close>
      have "Q(1, \<sigma>, ?\<theta>, q)" using 1 by (force simp add:components_simp)
      ultimately
      show ?thesis using A by simp
    qed
    then show ?thesis using assms(3) \<open>ftype(x) = 0\<close> \<open>cond_of(x)\<in>A2\<close> by auto
  next
    case mem
    have "Q(0, ?\<tau>,  \<sigma>, q)" if "\<sigma> \<in> domain(?\<theta>)" and "q\<in>A2" for q \<sigma>
    proof -
      from 1 assms
      have "?\<tau>\<in>A1" "?\<theta>\<in>A1" "cond_of(x)\<in>A2" "?\<tau>\<in>eclose(A1)" "?\<theta>\<in>eclose(A1)"
        using  arg_into_eclose by (auto simp add:components_simp)
      with  \<open>Transset(A1)\<close> that(1)
      have "\<sigma>\<in> eclose(?\<theta>)" 
        using in_dom_in_eclose  by auto
      then
      have "\<sigma>\<in>A1"
        using mem_eclose_subset[OF \<open>?\<theta>\<in>A1\<close>] Transset_eclose_eq_arg[OF \<open>Transset(A1)\<close>] 
        by auto         
      with \<open>q\<in>A2\<close> \<open>?\<theta> \<in> A1\<close> \<open>cond_of(x)\<in>A2\<close> \<open>?\<tau>\<in>A1\<close>
      have "frecR(\<langle>0, ?\<tau>, \<sigma>, q\<rangle>, x)" (is "frecR(?T,_)")
        using  frecRI3'[OF that(1)] frecR_DI  \<open>ftype(x) = 1\<close>                 
        by (auto simp add:components_simp)
      with \<open>x\<in>?D\<close> \<open>\<sigma>\<in>A1\<close> \<open>q\<in>A2\<close> \<open>?\<tau>\<in>A1\<close>
      have "\<langle>?T,x\<rangle>\<in> frecrel(?D)" "?T\<in>?D"
        using frecrelI[of ?T ?D x] by (auto simp add:components_simp)
      with \<open>q\<in>A2\<close> \<open>\<sigma>\<in>A1\<close> \<open>?\<tau>\<in>A1\<close> \<open>?\<theta>\<in>A1\<close> 1
      show ?thesis by (force simp add:components_simp)
    qed
    then show ?thesis using assms(2) \<open>ftype(x) = 1\<close> \<open>cond_of(x)\<in>A2\<close>  by auto
  qed
qed

lemma def_frecrel : "frecrel(A) = {z\<in>A\<times>A. \<exists>x y. z = \<langle>x, y\<rangle> \<and> frecR(x,y)}"
  unfolding frecrel_def Rrel_def ..

lemma frecrel_fst_snd:
  "frecrel(A) = {z \<in> A\<times>A . 
            ftype(fst(z)) = 1 \<and> 
        ftype(snd(z)) = 0 \<and> name1(fst(z)) \<in> domain(name1(snd(z))) \<union> domain(name2(snd(z))) \<and> 
            (name2(fst(z)) = name1(snd(z)) \<or> name2(fst(z)) = name2(snd(z))) 
          \<or> (ftype(fst(z)) = 0 \<and> 
        ftype(snd(z)) = 1 \<and>  name1(fst(z)) = name1(snd(z)) \<and> name2(fst(z)) \<in> domain(name2(snd(z))))}"
  unfolding def_frecrel frecR_def
  by (intro equalityI subsetI CollectI; elim CollectE; auto)

end

Messung V0.5 in Prozent
C=82 H=68 G=75

¤ 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.0.20Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen



NIST Cobol Testsuite



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 und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

      Eigene Quellcodes
      Fremde Quellcodes
     Quellcodebibliothek
      Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge