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

Benutzer

SSL Aodv.thy

  Interaktion und
PortierbarkeitIsabelle
 

(*  Title:       Aodv.thy
    LicenseBSD2. 
    Author:      Timothy Bourke, Inria
*)


section"

theory
imports Aodv_Data Aodv_M
        AWN._SOS_Lls AAWInants
begin

subsectionData "

record =
  ip    :: "ip"
  sn    :: "sqn"
  rt    :: "rt" 
  rreqs :: "(ip × rreqid) set"
  store :: "store"
  (* all locals *)
  msg    :: "msg"
  data   :: "data"
  dests  :: "ip sqn"
  pre    :: "ip set"
  rreqid :: "rreqid"
  dip    :: "ip"
  oip    :: "ip"
  hops   :: "nat"
  dsn    :: "sqn"
  dsk    :: "k"
  osn    :: "sqn"
  sip    :: "ip"

abbreviation aodv_init :: "ip ==> state"
where "aodv_init i (
         ip = i,
         sn = 1,
         rt = Map.empty,
         rreqs = {},
         store = Map.empty,

         msg = (SOME x. True),
         data = (SOME x. True),
         dests = (SOME x. True),
         pre = (SOME x. True),
         rreqid = (SOME x. True),
         dip = (SOME x. True),
         oip = (SOME x. True),
         hops = (SOME x. True),
         dsn = (SOME x. True),
         dsk = (SOME x. True),
         osn = (SOME x. True),
         sip = (SOME x. x i)
java.lang.NullPointerException

lemma some_neq_not_eq [simp]: "not(SOME x :: nat. x  i) = i)"
  by (subst some_eq_ex) (metis zero_neq_numeral)

definition clear_locals :: "state ==> state"
where "clear_locals ξ = ξ ("sqn"
    msg    := (SOME x. True),
    data   := (SOME x. True    :"" 
    dests  := (SOME x. True),
    pre    :SOME
    rreqid
    dip    :=(SOME x.True,
    oip    := (SOME x. True),
    hops   := (SOME   :: "datad"
    dsn    := (SOME x. True),
    dsk    := (SOME set
    ::rreqid
    sip ( x. x <noteqnoteq ip)
  )

lemma clear_locals_sip_not_ip :ip
  unfolding by simp    :: "sqn

lemma :: ""
  "ip (clear_locals ξ) = ip ξ
   "aodv_init i \equiv>🚫
  "rt (clear_locals ξ) = rt ξ"
  "rreqs x. True
  "store (rre = (SOME x. True),
  unfolding clear_locby auto

subsection "Auxilliary= SOME),

definition
whereis_newpkt  of
                       Newpkt data OME i)
                     | _ ==>"

definition is_pkt
where by (s (subst some_eq_ex) (metis zero_neq_numeral)
                    Pkt data dip'oip'\Rightarrow { xi\lparr> data := data', dip := dip', oip := oip' ) }
                  | _ ==>

definition is_rreq
where "is_rreq  of
                        OME rue
                       \xi<>hopsqidrreqid: ip,
                            dsk := dskdsnSOME rue
                   |_Rightarrow {}"

lemma is_rreq_asm [dest!]:
  assumes "ξ < is_rreq ξ"
    shows "(hops' rreqidp'osn
               msg ξ"
               i hops := hops', rreqid := rreqid', dip := dip', dsn := dsn',
                       dsk_i (clear_locals ξ)"
  usingassms is_rreq_def
  by (cases "msg ξ [simp]:

definition is_rrep
where "is_rrep"sn (clear_locals ξ"
                     Rreps''oipRightarrow>
                       { ξ( hops := hops', dip := dip', dsn := dsn', oip := oip', sip := sip' ) }
                   | _ ==> {}"

lemma is_rrep_asm [dest!]:
  assumes "ξ'  is_rrep ξ"
    shows "(hops' dip' dsn' oip' sip'.
               msg ξ = Rrep hops' dip' dsn' oip' sip' 
               ξ' = ξ( hops := hops', dip := dip', dsn := dsn', oip := oip', sip := sip' ))"
  using assms unfolding is_rrep_def
  by (cases "msg ξ") simp_all

definition iss ca_lc \>= stor<
where" <xi  case msg ξ
                     'Rightarrow> { ξ dests := dests', sip := sip }
                   | _ ==>

lemma [dest!]
  assumes "ξ' {}"
    shows "(
               <> =Rer dss' sip <and
               ' <i\lparr> dests := dests', sip := sip' ))"
  using assms unfolding is_rerr_def
  by (cases "msg \<  |' p dp'dssn := dsn',

lemmassg_defs f
  is_rerr_def is_rrep_def is_rreq_def is_pkt_def is_newpkt_def

lemma is is_rreq_asm [dest]:
  "ξ is_rerr   ==>"
  shows \>opsrrq dp' d dsk'oi' sn' ip
  xi> is_rreq ξ ip ξ<>"
  "ξ' = ξ
  \xi>' ip ξ"
  unfolding is_msg_defs
  bycases<", clarsimp+)+

lemma is_msg_inv_s is_rrep
  "ξ is_rerr ξ sn ξ"
  "ξ' 
  \'  sn \xi<>
  "ξ' {}"
  "ξ'
  unfolding is_msg_defs
  by (cases "msg<xi", clarsimp+)+

lemmasg_inv_rt [sp]
  "ξ
  "ξ' ()"
  "ξ' ξ
  "is_rerr>
  "ξ' sip' ==> dests := dests', sip := sip' )
  unfolding is_msg_defs
  by (cases "msg

lemma is_msg_inv_rreqs [simp:
  "ξdests' sip'.
  "ξ' <in 
  "ξ iw_def
  "ξjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  "ξ is_newpkt ξ rreqs ξ= rreqs ξ
  unfolding is_msg_defs
  by (cases "msg ξ", clarsimp+)+

lemmais_msg_inv_store [simp]:
  "ξ'n 🚫 sn' "
  "<>'  store> = store \>
  <>in is_rreq <i  >' = storexi>"
  "ξ is_pkt ξ
  "ξ' ' sn ξ"
  unfolding is_msg_defs " ξ
  by (cases "msg'  rt ξ"

lemma is_msg_inv_sip [simp]:
  "ξ is_pkt ξ>sip ξ \>java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
  \'  is_newpkt ==>"
  nfolding g_defs
  by (cases "msg

subsection "The protocol process"

datatype pseqp =
    PAodv
  | PNewPkt
  | PPkt
  | PRreq
  | PRrep
| Rerr

fun nat_of_seqp :  \w> nat"
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
  "nat_of_seqp PAodv  =<>'<>s_rreq   ==> \xi"
| "nat_of_seqp Pkt
"nat_of_seqp "<> <> is_newpkt ==>'  ξ
"nat_of_seqp PRreq = 4"
|"at_of_seqp p = 5
| "nat_of_seqp'  is_pkt ξ sip ξ"

instantiationg_defs
begin
definition less_eq_seqp [iff]: "l1 
definition less_seqp
instance ..
end

abbreviation AODV :\ghtarrow
where
  "AODV ek

abbreviation PKT
where
  "PKT args java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

     < PKT
         (clear_locals ξ) p) = >in
     call(PPkt
abbreviation)"
where
  "NEWPKT args ξ in
     \lbrakk<. let  )xi> in
         (clear_locals
     call(PNewPkt)"

abbreviationξs = a<> n
where
  "RREQ
     [nsk
         (clear_locals ξ) (]
                            dsn := dsn
                            osn :RREP
     call(<ξ rgs in

abbreviation RREP
where
  "RREP args
     [
r_locals ξ hops := hops, dip := dip, dsn := ds,
java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
     call(PRrep)"

abbreviation RERR
where
  "RERR args
     [p)a<>
         ocals >) \\<lparr> dests := dests, sip := sip \rparr<>
     call(r)

java.lang.NullPointerException
where
  "ΓADjava.lang.NullPointerException
     receivemsg'\xi.<>\lparr> msg' <>)is_rrep
     (    rt := updatexi) (sip<>) ( unk,,  \>\rparr\rbrakk
       . (hops, dip xi>, dsn <, oip ξ))
       is_rreq
            [ξ. ξrt := update (rt ξ) (0, unk,val  ξ]
            RREQξ<> rreqid ξ ξ, dsk ξ, osn ξ))
        λ. { ξ dip := dip> | dip. dip  \intervD(rt ξ) }
            [rt := update <xi>) (sip <) 
            RREP(λξ. (hops ξ, dip ξ, dsn ξ(λ. the (nhop ξ)), λ. pkt(data ξ, ip <xi.
        ξ (xi) (store ξ]
            [ [<(rip (rip vD (rt ξ nhop (rt ξrt) (dip <xi)
            RERR(λξ. (dests ξ,then Some (sqn ( ξ None]
     )
     λ. { ξ dip := dip ) qD(store ξ vD(rt ξ}\rangle
          [ξ. ξξ () (dests ξ))
          unicast(λ. the (rt<>)dip)), λ. pkt(data ξ, ip ξ
            [ξ. ξξ. \xi(rip (( ξ None  the ( (rt) rip) \noteq }
            AODV
          pre, λ. rerr ξ).AODV
                                     Someinc( (rt) rip))  Nonerparr>]
             <ξ. ξ ( rt := invalidate (rt ξ) (dests ξ) )]
             [ξ. ξ ( store := setRRF (store ξ) (dests ξ))]
             [ξ. ξ🚫= ( \i)
             ξ (\lambda>rip ((dests<> rip   (precs ξ<> 
                    then (dests ξelseNone) <>]
             groupcast<.  rerr ξ)). AODV
      ip ξ <xi ξ)
             | dip. dip 
         [<xi>ξ store := unsetRRF(store) (dip ξ]
         [i sn := inc (sn) )
         [ξ. data ξ
         [<.  rreqs ξ {(ip ξ ξ]
         broadcast(λξ. rreq(0, rreqid ξ, dip <xi\. ξ store := add (data) (dip ξ) )
                            ip, sn ξ)). AODV()"

| "ΓAD PNewPktlangle<xi>. dip ξ = ip ξ
     . dip ξ ip ξ
        deliver(λξ. dataξ. dip> ξ
      ξ. dip ξ
        [xi>. ξ ( store := add (data ξ (dip ξstore ξ<rparr>]
        AODV())"

| "ΓAODV PPkt = labelled PPkt (
     ξ. dip ξ(λ. the (nhop (rt) (dip ξξ ξ, oip ξ)).AODV()
        deliver(λ
      ξ.\xi \lparr dests := \lambdarip (rip vD (rt ξ nhop (rt ξ = nhop ξ<))
     
       ξ. dip [ () (dests <>)
  <>)dip, oip<>).AODV)
         
           [ξ. ξ ( dests := (λrip. if (rip ξ <>pre{ the (precs (rt ξ dom (dests<>) } )
                                    Someinc ( (rt\xi> )) else) )
           [ξ. ξ ( (dests ξripelse None) )
           [ξ. ξ ( store :           groupcast(λ> pre ξ,λ. rerr(dests ξ ip ξ()
           [ξ. \xi(( ξ) | rip ) } )
           ξ
                                   then (dests ξ) rip else None) )(λ. the (precs ξ)),
           groupcast<>ξ ξξ <>,ip)).AODV()
        ξ. dip> <langle>ξ. dip 
       (
           
             groupcast(λ<>. theprecs(rt < dip)),
                       λξ. ( ξ> 
            . (oip ξ) 
              AODVξ. ξ rt := updatert> (oip ξxi kno, val, hops ξ + 1, sip ξ, {}) )]
       )
     ))"

| "ΓOV PRreq = labelled PRreq (
     ξ. (oip ξ[. ξ sn := max (sn ξ) )
       AODV()
     
       [ξξ (rip. if (rip vD (rt ξ<> (rt\xi>  = nhop ξxi))
       [ξ. ξ ( rreqs := rreqs ξ ( (sqn (rt ξ))elseNone) )]
       (
         ξ. dip ξ = ip ξ
           [ξ. ξ ( sn := max (sn ξ) (dsn ξ) )<lbrakkxi ξ ( rt := invalidate (rt ξ) (dests ξ) )
           unicast(λξ. the (nhop (rt ξ) (oip ξ)), <lambda\>ξ. ξ ( store= setRRF (store ξ ξ)
           [. ξ dests := (λ. if ξ None  precs ( ξnoteq {})
             ξ <> (rip. if (rip ) rip =nhop ( ξ))
                                     then Some (incgroupcastξ xi, λ. rerr(dests, ip ξ
             [ξ ( ξ> )
             [. ξ store := setRRF (store ξ))
             [ξ ( (rt) (dip ξ}) )
             [ξξ. ξ rt := the (addpreRTrtξ (oip) {the (nhop ξ))}) ) 
                                     then ξ None]
             groupcast (rt) (dip ξ <>, ip ξ)).
         
         (
           <>\)  sqn (rt ξ ξ sqnf (rt ξ ξ
             [ξ. ξ ( rt := the (addpreRT (rt ξ) (dip ξ) {sip ξ}) )]
             [ξ<><xi (\lambdarip (rip vD (rt ξ nhop (rt ξ  (rtxi) (oip ξ
             unicast(λ (inc (rt>) rip)) else ) )
                         sqn (rt ξ><xi>. ξ\lparr rt : invalidate (rtxi (dests ξ) )]
             AODV()
           
             [. ξ dests := (λ. if (rip vD (rt ξ)  ξ= nhop (rtxi) (oip ξ
                                     then Somelbrakk<xi>. ξ ( dests := (λ. if(dests) rip  the (precs ξ {})
             <>\ rt := invalidate (rt ξ> )
             [ξ. ξ ( store := setRRF (store ξ) (dests ξ))><xi>. pre ξ, λξrerr(dests, ip ξ
             [. ξ( :=<<xi dom (dests) } )
             \lbrakk>ξ (.  ifdests) rip<noteqNone  the (precs (rt ξ rip {})
                                     then (destsdsk ξξ osn ξ, ip ξ)).
             groupcast(λξAODV
           
             broadcast(λ
                                sk ξ ξ\xi, ip i
             AODV()
         )
       ))"

| "Γ. <> = ip 
     
     
       [ξ. ξ ( rt := update (rt ξ) (dip ξ) (dsn ξ, kno, val, hops ξ + 1, sip ξ, {}) ) ]
       (
         ξ. oip ξ = ip ξ 
            AODV()
          ξ. oip ξ  ip ξ 
         (
           ξ. oip ξ  vD (rt ξ)
             [ξ. ξ ( rt := the (addpreRT (rt ξ) (dip ξ) {the (nhop (rt ξ) (oip ξ))}) )]
             [ξ. ξ ( rt := the (addpreRT (rt ξ) (the (nhop (rt ξ) (dip ξ)))
                                               {the (nhop (rt ξ) (oip ξ))}) )] 
             unicast(<\<rt)
             (
            \rt := the (addpreRT <>) ((rt) (dip)))
             [ (if \and (rt) rip = nhop <> 
                                      Some ( ξ]
             [()
             [ξ (]
             <ξ. ξ destsrip  (  nhop) rip=nhop (oip))
             >ξ (ifdests) rip\noteq None \andthe (precs (rt ξ) rip) 
                                     then (dests ξξ. ξ (:= nvalidate ξ ξrparr]
             groupcast(λξ. ξ store := setRRF (storexi) (dests\)<rparr>]
           > oip ξ vD (rt ξ
             AODV()
         )
       )
     )
     ξ ξξ ξ)).AODV()
         AODV()
     )"

| "Γ)
     [ξ
                       | Some rsn\Rightarrowif and> (nhop( \<> rip ==  \<>
                                       \<and> sqn
     \<lbrakk| \Gamma\^ub\^>\^subD^>  = PRerr(
     \     <>\xi. <> \lparr>dests= \lambdarip  (dests \<xi) rip of None \RightarrowNone
\<lbrakk><xi.\<xi> <>  :=\Union  ( <> ) |rip. rip\in dom(dests \<xi)}\<rparr><>
     \\<and sqn(rt\<i>rip <<rsn Somersn elseNone \rparr\rbrakk
                             then (dests \<xi>) rip else None) \<rparr>     <><>.\<xi <lparr rt=invalidate ((rt\xi) (dests \<xi)\rparr\<brakk>
     groupcast(\<lambda\<>.  \<i,\lambda\<>. rerrdests\xi> ip \<i>). AODV()"

declare \Gamma\^sub>A<^sub>O\^>D\^sub>Vsimps[simp del]

lemmas \<Gamma>     \<lbrakk\xi.\xi  := \lambda>.if((dests <> rip \noteq  \<> the ( ( \xi)rip\<> {)

fun \<Gamma>\<^sub>A\<^sub>O\<^sub>D     (\lambda\xi>  \xi, <>\<>.rerr( \<> ip\<xi>).AODV()"
where
    "\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V_skeleton PAodv   = seqp_skeleton (\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V PAodv)"
  |"<Gamma>\^>A\^>O<sub>\^sub>V_skeletonPNewPkt= seqp_skeleton\Gamma\^>\^>\^subD<sub>VPNewPkt)"
  | "\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V_skeleton PPkt    = seqp_skeleton (\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V PPkt)"
  | "\Gamma\<sub>\<^subO<subD<subV_skeletonPRreq   = seqp_skeleton (\<Gamma>\<^sub>\<^sub>O\<^>D\^subV PRreq)""
  | "\<Gamma>\<^sub>A\<^sub>O\<fun <Gamma\<^>A\^sub>\^subD\sub>V_skeleton
  "<><^>\^>\<sub\^> PRerr= seqp_skeleton (\Gamma><subA<subO<subD\<^> PRerr"

lemma<><sub\^>\^>\^sub> simp
  "wellformed \<Gamma>  | "\Gamma<subO<subD<sub>      seqp_skeleton\Gamma\<^>A<subO\^>\^> PPkt"
  proofruleintro)
    fix pn|"<>\^>A<^>O<^sub>D<sub>V_skeleton PRrep   = seqp_skeleton (\Gamma\<^>A\^subO\^subD<^ubV PRrep)"
    show "call(pn') \<notin> stermsl (\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V_skeleton pn)"
      by (cases pn) simp_all
  qed

declare \<java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 \Gamma^>A\<sub\^>\^>V_skeleton_simps[, ] =\<><subA<^>O<sub>\subV_skeleton. [implified \><subA\^ubO<subD\^>V_simps seqp_skeleton.imps

lemma aodv_proc_cases [dest]:
  fixes pp pn
  shows "p \<in> 
                                 <in>ctermsl<><^sub><subO<^subD\^> PAodv \<> 
                                 p \<in> ctermsl (shows" \in> ctermsl(\Gamma\<sub>A<^>O\^sub>\<> pn \<>
                                 p\in  \Gamma\^ubA<subO<subD\^>V )  \<>
                                 p \<in> ctermsl (\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V PRreq) \<or>
                                 p \<in> ctermsl (\<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V PRrep) \<or>
                                 p \<in> ctermsl (                                 \in>  (\Gamma><sub>A\^>\^>D\<^sub>V PRreq) \<or>
  by (cases pn) simp_all

definition <sigma\<subA<subO<subD<subV: ip <>( \<>(state, msg, pseqp, pseqp label) seqp) set"
where "\<sigma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V i \<equiv> {(aodv_init i, \<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V PAodv)}"

abbreviation paodv
  : "ip \Rightarrow (state\<> (, msg, pseqp  label seqp,msg seq_action)automaton"
where
  "paodv i \sigma>\^subA<subO<^>D\<subV : " \<> ( \<> (, msg, , pseqp label)seqp)  set"

lemma aodv_trans: "trans (paodv i) = seqp_sos \<Gamma>\<^sub>A\<^sub paodv
  by simp

lemma aodv_control_within [simp]: "control_within \<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V (init (paodv i))"
  unfolding \<sigmajava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

lemma aodv_wf [simp]:
  "wellformed \<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>Ve sigma\<^>A<^>O<subD\<^sub>V_defby rule )( simpdel\<sub>A<^sub>O<^sub>D\^sub>simps)
  proof (rule, intro allI)
    fix pn pn'
    show"call(pn) \notin stermsl (<Gamma><subA<^sub>O\<sub>D\<^sub>V pn"
      by (cases pn) simp_all
  qed

lemmas aodv_labels_not_empty [] =labels_not_emptyOF aodv_wf

lemma aodv_ex_label [intro]: "\<exists>l. l\<in>labels \<Gamma>\<^sub>A\<^sub>     "call(')\notin stermsl (<Gamma>\^>A\^sub>\<sub>\^sub>V )"
  by (metis aodv_labels_not_empty all_not_in_conv)

lemma aodv_ex_labelE [elim]:
  assumes "\<forall>l\<in>labels \<Gamma>\<^sub>A\<^sub>O\<^subjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      and "\<exists>p l. P l p  <Gamma>\<^>A\^sub>O<^>D\^sub>> p.P   p"
    shows ""
  using assmsshows""

lemma aodv_simple_labels [simp]: "simple_labels \<Gamma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V"
  proof
    fixpnp
    assume "p\<in>subterms(\<Gamma>\<^sub>A\<java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 7
    thus "\<exists>!l. labels \<Gamma>\<^sub>A\<^sub>O\<^sub>thus"<>!l.labels \Gamma\^>A\^ubO\^ubD\<^sub   l"
    by (cases pn) (simp_allby casespn) simp_allcong seqp_congs elimdisjE)+
  qed

lemma \<sigma>\<^sub>A\<^sub>O<subD<subV_labels[simp"\xi,p <in> <sigma\<subA\<subO<subD<subV  \<>   \Gamma\<^>A<^sub>O<sub>D\<^sub> p  {PAodv-:0"
  unfolding\sigma<subA\^ubO\^sub>D<^sub>V_defby simp

lemma aodv_init_kD_empty [simp]:
  "(\<xi>, p) \<in> \<sigma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V i \<Longrightarrow> kD (rt \<xi>) = {}"
  unfolding\<sigma\^>A\<O<subD\^>V_def kD_defbysimp

lemmaaodv_init_sip_not_ip[] "\not( (aodv_initi) =i)"by simp

lemma ' [simp]:
  assumes "(\<xi>, p) \<in> \<sigma>\<^sub>A\<^sub>O\<^sub>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    shows "sip \<xi> \<noteq> ip \<xi>"
  usingassms  \sigma\^>\^>\^sub>D<sub> bysimp

lemma  assumes"(\xi>, ) \in \sigma\<^>A\<sub>O<^>D\<^sub>Vi"
  assumes "(\<xi>, p) \<in> \<sigma>\<^sub>A\<^sub>O\<^sub>D\<^sub>V i"
    shows "sip \<xi> \<noteq> i"
  using assms unfolding \<sigma>\<^sub>A\<^sub>O\<^sub>D\<^sub    shows

lemma clear_locals_sip_not_ip':
  assumes "ip \<xi> = i"
    shows "\<not>(sip (clear_locals \<xi>) = i)"
  using assms by auto

text \
declare seqp_congs [cong]

textshows"\not>sip(lear_locals \<xi> =i)"

declare
  \<text <>Stop the simplifierfrom into process.\lose
  aodv_proc_cases [ctermsl_cases]
   OF  aodv_simple_labels,
                            cterms_intros]
  seq_step_invariant_ctermsI [  aodv_control_within ,
                                 cterms_intros]

end

Messung V0.5 in Prozent
C=97 H=88 G=92

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

*Eine klare Vorstellung vom Zielzustand






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