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

Benutzer

Quelle  Traces.thy

  Sprache: Isabelle
 

theoryapply(<>close; simp)
imports 
begin

chapter down \close

  t = εt
) (simp_all_def)

typedecl Σ
type_synonym 'a finite_trace = Finite xs = Finite ys t🚫t\close) (simp_all)
  'a infinite_trace = = iez\close
  'a trace = Finite auto: de pref)

  thead :: t = ε
 _df; cases <>\; simp)+
  \<> 'a trace ==> 'a finite_tracep (auto s pr[THEN s] des: pre.leD i:pre.ord.tr)

 
 
  ttake k (Infinite xs) = map xs [0..<k]
 

  ε
 te)

  single itrpzr[ip:🚫
 

  t monoi \<>(
  unfold_locales
 fix a :: show tte_ip[simp
 by (cases
 
 a :: show >s X = (<>t
 by (cases 'a trace ==> 'a trace set
 
 fix a b c ::
 apply (cases u | u. True }\close t show \openInfinite x \in X

 apply (cases p prefixe)
 cases e \openc
; s
 applyu x; assu\open x
 by (smt (verit, ccfv_threshold'a trace

 addcmmute d_difivrentadls_cnc_eft
 nth_append trans_less_add2)
 

  finite_emrc.ight_neutral)
 
 shows me inoon p)fix)sure_s)ube
 using assms by (cases

  finite_empty_prefi by (simp, metis a pensms(3) apd_iis_pty1) ieepty_sufi
 assumes
 shows 'a trace
 using assms by (cases \open\subseteqY ==>🚫)

 _finite_suffix:
 assumes
 tains zs whe w ?thesis: \open>\^s (X \union Y) \>^s>sX 🚫
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null

 <> zs. ys = xs @ zs \<Longrightarrowunfoldingimp: edf mts race.ppensis2)
 assumes t) (simp_all add: min_def take_map)
 obtains zs where tdrop n (tdrop m t) = tdrop (n + m) t
 using assms by (cases

  app
 
 shows \<>t = ε
 and
 using assms by (simp add: ε_def; cases

  ttake :: ace
 t = Finite x1
 <penttake tra set ==> t fro> v) = tdrop k t 🚫


  itdrop :: where
 

java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
 by (simp add: itdrop_def add.commute add.left_commute)

  itdrop_zero[simp]: le dprefixes_a : 🚫
 by (simp add: itdrop_def)


  tdrop :: \^s ttake_drp
 >tdrop k (Finite xs) = Finite (drop k xs)

  t; simp add: ttake_finite_prefixes min_def take_map)

  ttake_simp[simp]:
 t\<lemma length xs > length ys
?thesis


  ttake_tdrop
 by (cases \<open  ?thesis


  prefixes :: p_directe: v
 open>\downt= { u | u vv. t =u \frown vv }\close

  extensions :: 'a trace ==> 'a trace set
  : \< \

  prefixes_extensions: λ t u. t uλ t u. t t
 unfolding prefixes_def ex extensioinnte[] \open

  addd:xensions\open>I x <>\
 
  (* Reflexivity *)

  fix x :: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 unfolding aassume Infinite x
java.lang.NullPointerException
 
  (* Strict Ordering *)

    : opena trace
\down }close
  show 
    unfolding prefixes_def
    by byimp
                    acehaust)
nextprefix_closure_Inter\<down>\<^sub>s (\<Inter> (prefix_closure unfoldingdprefixes_defprefix_closure_def
  (* Antisymmetry *)

  fix xy:<>atrace
  assume assms: 
  \open = y🚫s UNIV = UNIV
pre
 proof (cases
 case Finite note yfinite = this
 how w\open?th\<close    
 proof (cases \<            simp
 case Finite
 with assms(2) obtain z where
 unfolding prefixes_def
 by auto
 with assms(1) yfinite show
 unfolding prefixes_def
 byassume🚫\close
 qed (smt (verit, del_insts) CollectD append.simpu drefixxe_df
 qed (smt (verit, del_insts) CollectD append.simps(3
 _sr_dprefes : \<><
  (* Transitivity *)

  fix x y z :: 
 assume
 then show
  prefixes_d by (force ssimp: : trace.a)
 

java.lang.NullPointerException
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 29
 
  prefixes_infinite_greatest : Infinite x
 by (simp add: prefixes_def)



  prefixes_finite :
  (rulund>D nitive e

 
 using finite_finite_suffix by (fastforce simp: prefixes_def)
 
 show ixes_empty: <>\
 by (clarsimp simp: prefixes_def) (metis Traces.appe peie_de
 prefix_closure_empty ybast

  ttake_take :
 by (cases \<unfoldingrefixes_def

 tdrop n (tdrop m t) = tdrop (n + m) t

 by (cases


  tdrop_mono:  refixes_mono:ixes_mono:
  -
  fix v assum A: <> 
 open>t
; cases a dfsdf
 fixpieensbyst
 by (simp, metis Traces.append.simps(2))
 next
 fix x1 x2 assume
 have
 apply si
 apply (rule ext)
 apply
 apply (rule conjI)
 apply (simp add: add.commute itdrop_def less_diff_conv)
 unfolding definby (rule dprefi
 diff_right_commute itdrop_def linorder_not_less nat_less_le)
 then sho <><
 by auto
 qed auto } note A = this
 assume
 

  ttake_finite_prefixes : Definitive Sets
 le ifI)
 show Longrightarrow xs = ttake (length xs) tu def efi]
 by (clarsimp simp: prefixes_def)
 
 show definitive X ==> X \Longrightarrow Y\Longrightarrow definit (X\interY🚫
  refxesusing tta
 by (metis (full_types) mem_Collect_eq)
 

  ttake_prefixes :
 by (cases

 emma finite_directed:
 
 
  (cases {X,Y}eiiiexten
 case True
 with assms show f. Infinite f s) thn show \<pen?t\n>λ eundefined🚫?thesis_
 ply (simp ip ad:ttake_fipreixes)
 using ttake_prefixes[simplified prefixes_finite]
 by (metis less_le_not_le)
 
  intro: exI[where shw \<> 
 from assms this[THEN leI] show qed ass
 
 using ttake_prefixes[simplified prefixes_finite]
 by (metis)
 


  prefixes_directed: open>d X = Xopen>definiti
 (cses \openv
🚫X \d dpref
java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 0
 then have
 using finite_directed prefixes_finite by blast } note X = this
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 
  (auto simp: prefixes_def dest: prefixes_infinite_greatest)

java.lang.NullPointerException
 
  (auto simp: prefixes_extensions[THEN sym] dest:usin Uion_ctis_dpfixsby lst

 extensions_infinite[si
java.lang.NullPointerException

  extensions_empty[simp]:
 by (simp add

  prefixes_empty: by (simp ad dUn dpre)
 apply (clarsimp simp add: set_eq_iff ε_def prefixes_def)
 apply (rule iffI)
 apply (metis ε_deef append__py1)
 by (me \epsilond traceleft_


 

  prefix_closure ::
 dUn

  prefix_closure_subset: 'a dset set ==> 'a dset) is
 unfolding prefix_closure_def
 by auto

  prefix_closure_infinite:
 
 assume 'a dset set ==> () is
 by(eiNEpx_clos_ efxsifint_gra)
 
 assume 'a dset (
  b(s add: dp
 

  prefix_closure_idem:
  subst_det:: \open'a dset ==> 'a dset ==> bool

 using prefixes.order.trans str

  prefix_closure_mono:
  prefi
 by blast

  prefix_closure_u: \\
 unfolding prefix_closure_def
 by

  prefix_closure_Union_distrib: \open\down> S) =
 unfolding pefix_closue_def
 

  prefix_closure_Inter:
 unfolding prefix_closure_def
 lemma o>A B ==> in_dset x A ==>

  by t
 by (rule prefix_closure_Inter[where S =in_dset_nter s

 fix_closure_UNIV:op><>\'a trace set

  sh \< Y Y \union)\<> 

  prefix_closure_empty:
 unfolding prefix_closure_def by blast

  prefix_closure_extensions:
  ((rceoInte :\open>a dset s🚫 Z

 simp: prefixes_extensions[THEN sym] prefix_closure_def)

  prefix_closure_prefixes: Isomorphism of deetsan LTL propeties\close>
 closure_def
 by (force intro: prefixes.dual_order.trans)

  'atrace set \Rightarrow 'a infinite_trace setinfinites X = (x

  dprefixes :: (x hence
  (x < A

java.lang.NullPointerException
 unfolding dprefixes_def
 using extensions.order.refl by blast

  prefix_closure_dprefixes : t \<nrange Infinitet
; auto)
 using dprefixes_are_prefixes prefix_ab union_dset :: \\>'a dse <>'
 by blast

  dprefixes_idem:
 
 show
 using prefix_closure_dprefixes
 by (force simp: dprefixes_ infinitip]: \open>infinites {} = {}

 
 w
 using extensions.order.trans prefix_closure_subset
 by (force ift empty_dset ::
 by (eisnt traedtn()taeehuttaeinje()

  dprefixes_contains_extensions:
 unfolding dp
 using extensions.dual_orde infinies_dprpefs: \>infinites (>c) is

  dprefixes_infinite: infinites ( rudef)
 
 show infinites (
 unfolding dprefixes_def
 refix_closure_subset fsfoc
 
java.lang.NullPointerException
 unfolding dprefixes_def
 by (clarsimp simp: prqed
 


  dprefixes_UNIV:
 unfolding dprefixes_def
 using prefix_closure_UNIV by force

  dprefixes_empty: 'a infinite_trace set R>'a dset is
 
 using prefix_closure_empty by blast

  dprefixes_Inter_distrib:
 unfolding dprefixes_def prefix_closure_def
 by auto

  dprefixes_Inter: <>< (dprefixes ` S)) =
 
 show
 nfolding rfxs_def pei_cos iftd n_set :: \openatrace \Rightarrow'a ds 🚫
 using prefixes.order.refl extensions.dual_order.trans
 by force
 
 show 🚫
 using dprefixes_idem dprefixes_Inter_distrib
 by blast
 

  dprefixes_mn:
 assumes A
 shows
 using assms
 apply (simp add: dprefixes_def)
 apply (simp add: prefix_closure_def)
 
 sing pefe_xnsons by bls


java.lang.NullPointerException
 by (rule dprefixes_Inter[where S =

  dprefixes_inter_distrib:
 using y (tansfer, simp add inffiess_Ir

 

  definitive::
java.lang.NullPointerException

 e_image:age\openX
 unfolding definitive_def by auto

 initive_dprefixes\openef (🚫'a infinite_trace set ==> where
  (ruerefixs_idee inn_dse <in_dset pd_idropwhr \\>0
 

  definitive_contains_extensions:
 unfolding definitive_def using dprefixes_contains tra_unoncse cseeCons Nil

  definitive_UNIV:
  aand \open<epsilon 

java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
 unfolding definitive_def by (rule dprefixes_empty)

  definitive_nter: 🚫
 unfolding definitive_def using dprefixes_Inter definitive_ithehow<>?
 by metis

  definitive_inter: sqsubseteq>)\close
 using definitive_Inter[where S = for ts,

  definitive_infinite_extension:
 assumes f = (λn. if n = 0 then [f 0] ! n else (\< Suc
 shows
  assms proof (cases f 0Infinite (f Suc)

 case (Finite xs) then show (unfold_loc;transfer))
 apply (intro xI[hr x=\<>\trae sec> as \opende X\close \open>
 by (force simp: prefixes_extensions[THEN sym] prefixes_def
 Nuse, OF ams]
 intro: exI[where x=\  t
dZ)
  auto

  definitive_elemI:
 assumes t
 shows tdrop k ε dUnion_leastd insesrsngeto
 using ass
 by (auto simp add: definitive_def dprefixes_def)


java.lang.NullPointerException
 open>en>Union><^> 

  dunion :: (infixl )wee
 ?thesis

 prefixes_dUnion:\opend d S = d S
i
 by (simp add: dUnion_def dprefixes_idem)

  definitive_dUnion:
 by (simp add: dprefixes_dUnion definitive_def)

java.lang.NullPointerException
 by (au(auto simp: dUnion_de prefix_df prex_cour_de

java.lang.NullPointerException
 unfolding definitive_def
 using dUnion_contains_dprefixes by blast

 Union_empty[eptp:🚫
 unfolding dUnion_def
 by (simp add: dprefixes_empty)

  dUnion_least_dprefixes: (X. X
 unfolding dprefixes_def prefix_clsection
 by (simp add: subset_iff, meson extensions.order_refl prefixes.order.trans)

  dUnion_least_definitive:
 assumes all_defn: 'p])
 open>(X. X X L d S 🚫
 using definitive_image[OF all_defn,THEN sym] dUnion_least_dprefixes definitive_def
 by metis

 

  'a ds
 using definitive_UNIV by blast

  type_definition_dset

  Inter_dset :: 'a dset
  (simpad: df)

  inter_dset :: x prepend' X
  🚫

  Union_cset :: 'a dset
) is
 by (rule definitive_dUnion)

  union_dset :: \'a dset ==> 'a dset ==> 'a dset
range n)🚫
 🚫

  empty_dset ::
 by (rule definitive_empty)

  univ_dset :: definitive Xdefinitive (prepend' X)

 by (rule definitive_UNIV)

  subset_dset ::
 done

  strict_subset_cset :: ()

 done

  in_dset ::
 done

  notin_dset ::
 done



  in_dset_εassu B
 apply (transfer)
 using definitive_contains_extensions extensions_empt blst

  in_dset_UNIV:
 by (transfer, simp)

  in_dset_subse)
 by (transfer, auto)

  in_dset_inter: B)
 by (transfer, simp)


  dset: (sipadd:efintvsines
  (unfold_locales;transfer)
 fix X Y Z :: assume
 then show x
 y etsdnon_dUinlest_efinienertiffsiltonD
 by mis\epsilon_def append_is_empty(1) list.discI trace.inect()
 :a trse\close
 assume
 then show
 d_prefix \<>x
  (auto simp: dUnion_contains_definitive)

 

  infinites ::
 

  infinites_alt:
 set_eq_iff proof
 fixa \>t. x (\Union = 🚫
 by (clarsimp simp: infinites_def split!: trace.split_asm)
 } moreover { assum \<pen 
 by (force simp: infinites_def split!: trace.split intro!: imageI)
 } ultimately show (x Infinite ` infinites A) = (x A range Infinite)
 by blast
 

  infinites_append_right:
 by (cases

 infinites_prefix_closure:
 
 shows
 prefix_closure_def fnitsdef
 using definitive_infinite_extension[OF assmpefis.odrtrns
 by (force splby fasr

 es_UNIV[simp]:
 by (auto simp: infinites_def(a tre ==>tcl is

  infinites_empty[simp]:
 by (auto simp: infinites_def)
 
  infinites_Inter: (infinites ` S)
 show 🚫
 apply (rule set_eqI; rule iffI)
 apply (force)
 apply (simp split: trace.split trace.split_asm)
  (meis IInter trace.dist1) traceexhau tra.inject(2)

  infinites_Union: infinites (
 unfolding infinites_def
 by auto

  infinites_dprefixes: infinites (
 unfolding infinites_def
 by (force simp: dprefixes_infinite split: trace.split trace.split_as how \open <>infinites

  infinites_dprefixes_Infinite: infinites (d Infinite ` X) = X
 
java.lang.NullPointerException
 unfolding infinites_def
 using prefixes_infinite_greatest
 by (force split: trace.split_asm simp: dprefixes_def prefix_closure_def)
 
 show X 🚫
 by (force simp: infinites_def dprefixes_def prefix_closure_def split: trace.split)
 

  property ::
 

  definitives :: <>is
 by (rule definitive_dprefixes)

  property_inverse: property (definitives X) = X
 by (transfer, simp add: infinites_dprefixes_Infinite)

  definitives_inverse: definitives (property X) = X
  (rule dset.order_antisym)
 show
 by (transfer, force simp: dprefixes_def infinites_prefix_closure
 intro: definitive_elemI)
 
java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
 apply transfer
 using definitive_contains_extensions definitive_infinite_extension
 by (force simp: dprefixes_def prefix_closure_def infinites_def)
 

  definitives_mono:
 by (transfer, metis dprefixes_inter_distrib image_mono inf.order_iff le_infE)

  property_mono: (rule dse.ord)
 by (transfer, auto simp: infinites_def)

java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 using property_inverse property_mono by metis

  completions_reflecting:
 using definitives_inverse definitives_mono by metis

 openp(\<>S
 by (transfer, simp add: infinites_Inter)

  property_Union: property ( S) = (property ` S)
 by (transfer, simp add:



  dset: complete_distrib_lattice
 by (unfold_locales)
 (auto intro: completions_reflecting simp add: property_Inter property_Union INF_SUP_set)


  iprepend :: 'a infinite_trace set ==> 'a infinite_trace set where
 iprepend X = {t. itdrop 1 t X }

  iprepend_itdrop:
 by (simp add: iprepend_def)

  iprepend_itdrop_0[simp] = iprepend_itdrop[where k = 0,simplified]

  prepend' ::
 prepend' X = {t. tdrop 1 t X }

  trace_uncons_cases [case_names Cons Nil]:
 assumes
 and x = ε ==> P
 shows P
  (cases
 case (Finite xs)
 then show
 by (cases xs
 force simp: assms(2)[simplified ε_def]
 intro: assms(1)[where t = Finite ts for ts,
 simplified singleton_def append.simps List.append.simps])
 
 case (Infinite f) note A = this
 have using definitives_inverse definitives_mono by metis
 by (rule ext, simp)
 with A show
 using assms(1)[where σ = f 0 and t
 simplified singleton_def append.simps, simplified]
 by simp
 

  append_prefixes_left:
 by (simp add: prefixes_def) (metis trace.assoc)

  tdrop_singleton_append[simp]: tdrop (Suc n) (singleton σ t) = tdrop n t
 by (cases tb (transfe sim add infi)
  tdrop_zero[simp]:
 by (cases =\<nion 
  tdrop_ε[simp]: tdrop k ε = ε
 by (simp add: ε_def)

  prepend'_prefix_closure:
  (rule subsetI)
 fix x
 assume A:
 show > <lose 
 proof (cases x rule: trace_uncons_cases)
 case (Cons σ t)
 with A show ?thesis
 unfolding prefix_closure_def prepend'_def prefixes_def
 by (fastforce simp: trace.assoc)
 next
 case Nil
 with A show ?thesis
 unfolding prefix_closure_def prepend'_def
 by (force simp: prefixes_empty_least)
 qed
 

  prepend'_dprefixes :
  definitive X
  d prepend' X = prepend' X
 
 show simp a: proppropertINF_S)
 proof (rule subsetI)
 fix x assume A: x
 proof (cases
 case (Cons σ t)
 with A show
 unfolding dprefixes_def
 apply (subst assms[simplified definitive_def, THEN sym])
 apply (clarsimp dest!: subset_trans[OF _ prepend'_prefix_closure])
 using append_prefixes_left
 by (force simp: dprefixes_def prepend'_def prefix_closure_def subset_iff
 prefixes_extensions[THEN sym])
 next
 case Nil
 with A show ?thesis> itd (Suc k) x \inB\<<close
 apply (subst assms[simplified definitive_def, THEN sym])
 apply (clarsimp simp: prefixes_empty_least prefixes_def dprefixes_def
 prepend'_def prefix_closure_def subset_iff
 prefixes_extensions[THEN sym])
 by (metis tdrop_singleton_append tdrop_zero trace.assoc)
 qed
 qed
 
 show prepend' X
 proof (rule subsetI)
 fix x assume A:
 proof (cases x rule: trace_uncons_cases)
 case (Cons σ t)
 with A show
 by (clarsimp simp: dprefixes_def prefixes_def prepend'_def
 prefix_closure_def pref[THEN sym]])
 (metis (mono_tags, lifting) assms definitive_contains_extensions
 mem_Collect_eq prefixes_def prefixes_extensions subset_eq
 tdrop_singleton_append tdrop_zero trace.assoc)
 
 case Nil
 with A show ?thesis
 using assms definitive_contains_extensions
 by (force simp: dprefixes_def prepend'_def prefix_closure_def)
 qed
 qed
 

  prepend'_definitive :
 assumes x =si \<>\
 shows definitive (prepend' X)
 unfolding definitive_def using assms
 by (rule prepend'_dprefixes)

  prepend ::
 by (rule prepend'_definitive)

  prepend_Inter:
 apply transfer
 by (auto simp add: prepend'_def)

  in_dset_proof (cases \openclose>)
 by (transfer, metis One_nat_def Traces.singleton_def mem_Collect_eq prepend'_def
 tdrop_singleton_append tdrop_zero)

  in_dset_prependI:
 by (transfer, metis One_nat_def Traces.singleton_def mem_Collect_eq prepend'_def
 tdrop_singleton_append tdrop_zero)

  prepend'_mono:
 assumes A B
 shows prepend' A prepend' B
 using assms unfolding prepend'_def
 by bla

  property_prepend: property (prepend X) = iprepend (property X)
 apply transfer
 by (clarsimp simp: definitive_def infinites_def prepend'_def
 split!: trace.split_asm trace.split intro!: set_eqI;
 blast)

  iprepend_Union: : ssms1[where t = <>Finite
 by fastforce

  definitives_inverse_eqI:
 by (simp add: definitives_inverse)

  prepend_Union:
 apply (rule definitives_inverse_eqI)
 apply (simp add: property_Union property_prepend)
 by (metis UN_extend_simps(10) iprepend_U (nf f) note A =thi

  non_empty_trace:
 apply (cases x rule: trace_uncons_cases; clarsimp)
 apply (metis Traces.singleton_def ε_def append_is_empty(1) not_Cons_self2 trace.inject(1))
 by (metis ε_def append_is_empty(1) list.discI trace.inject(1))

  thead_append: x ε ==> thead (x y) = thead x
 by (cases

  thead_prefix: x \<openf
 apply (simp add: prefixes_def non_empty_trace)
 using thead_append [where x = Finite [_], simplified ε_def, simplified]
 by (metis append_is_empty(1) thead_append)

  compr'_inter_thead:
 
 = d {x. x ε
  (rule antisym)
  fix x t
 assume
 and
 and open>a n\downc \<> 
 then have x. x ε P (thead x) Q (thead x) t x
 by (cases t = ε
  then show
 by (clarsimp simp: set_eq_iff subset_iff dprefixes_def prefix_closure_def prefixes_extensions[THEN sym])
 
  fix x
 assume t. x t (opet\<> 
 then have
 (t. x t (x. x ε <>\
  fas }
 then show d {x. x ε P (thead x)} d {x. x de)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 

  compr :: ('a trace ==> bool) ==> 'a dset is λp. d {x. p x }
 by (rule definitive_dprefixes)


  complement ::
 by (rule definitive_dprefixes)


  property_complement[simp]: property (complement X) = UNIV - property X
 by (transfer, force simp: infinites_dprefixes[simplified infinites_def] infinites_def
 split: tracedhow 🚫

 

Messung V0.5 in Prozent
C=25 H=27 G=25

¤ Dauer der Verarbeitung: 0.27 Sekunden  ¤

*© Formatika GbR, Deutschland






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