Title: IOA
Author: Olaf Müllerlemma <>B =<| C ==>
*)
section‹xecution, sch and trace modules\close>
Sequence Automata
type
('a, 's) ptinsA, asg_ A)
'a,
'a trace = "'a S Sched :: "('a, 's) ioa \Rightarrow> 'a schedule_module"
', ' exeection ""('a, ) eexe set ×ia \ightarrow a t ==> A = (traces A, asig_ A)"
'
definition sch: ": "('a, 's) i ==>a trace set"
java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
is_exec_fragC :: "('a, 's) ioa ==> ('d
where "is ‹
(fix ⋅
(LAM h ex.
(λs.
case ex of
nil ==> TT
| x ## xs ==> flift1 (λp. Def ((s, p) ∈
is_exec_frag :: "('a, 's) ioa ==> ('a, 's) execution ==>⋅
where "is_exec_frag A ex ⟷ (is_exec_fragC A ⋅
laststate :: "('a, 's) execution ==> 's"
where "laststate ex =
(case Last ⋅ (snd ex) of
UU ==> fst ex
| Def at ==> snd at)"
‹A predicate holds infinitely (finitely) often in a sequence.›
inf :: "('a 🚫
where "inf_often P s ⟷
‹ (λ
fin_often :: "('a ==>
where "fin_often P s ⟷==>
\open>Fairnesof executions›
‹
Note that partial execs cannot be ‹wfair› as the inf_often predicate in the
else branch prohibits it. However they can be ‹sfair› in the case when all ‹W› are only finitely often enabled: Is this the right model?
See 🍋
superseding this one.
<close
is_wfair :: "('a, 's) ioa ==> 'a set ==> ('a, 's) execution ==> bool"
where "is_wfair A W ex ⟷
(inf_often (λx. fst x ∈ W) (snd ex) ∨
inf_often (λx. ¬ Enabled A W (snd x)) (snd ex))"
wfair_ex :: "('a, 's) ioa ==> ('a, 's) execution ==> bool"
where "wfair_ex A ex ⟷
(∀W ∈
if Finite (snd ex)
then ¬
lse iswfai A W exex)
is_sfair :: "('a, 's) ioa ==> 'a set ==>
arrow>
(inf_often (λx. fst x ∈ W) (snd ex) ∨
fin_often (λx. Enabled A W (snd x)) (snd ex))"
sfair_ex :: "('a, 's)ioa ==>
where "sfair_ex A ex ⟷
(∀
if Finite (snd ex)
then ¬
else is_sfair A W ex)"
lemma is is_exec_fragC_cons:
where "fair_ex A ex ⟷ wfair_ex A ex ∧ A \<cdot
‹Fair behavior sets.›
fairexecutions :: "('a, 's) ioa ==>trans
where "fairexecutions A = {ex. ex ∈ executions A ∧
fairtraces :: "('a, 's) ioa ==> 'a trace set"
where "fairtraces A = {mk_trace A ⋅ (snd ex) | ex. ex ∈)
mk_trace_UU: "mk_trace A ⋅ UU = UU"
by (simp add: mk_trace_def)
mk_trace_nil: "mk_tracA \cdot ni = nil"
by (simp add: mk_trace_def)
mk_trace_cons:
"mk_trace A ⋅ (at ↝ xs) =
(if fst at ∈ ext A
then fst at ↝ mk_trace A ⋅ : "l (s, nil) = =s""
else mk_trace A ⋅ xs)"
by (simp add: mk_trace_def)
exists_laststate: "Finite ex ==> executions of ‹. This is only true because of
by Seq_Finite_i
‹
take the detour of schedules*)
ae_def2 (\needed,s in<openonditionLemmas apply UU fst apply auto done
subsection‹
‹
All executions of ‹
the predicate ‹ (part of the predicate ‹
dependent types. For executions of parallel auwhere "if_ofe s <longleftrightarrowleftrightarrow s)"
needed, sin 🚫par_def› this condition is included once more. (See Lemmas
1.1.1c in CompoExecs for example.) ›Filtering ‹
execfrag_in_sig:
"is_trans_of A ==>¬
apply (pair_induct xs simp: is_exec_frag_def Forall_def sforall_def)
text ‹
apply (auto
done
emmaeec_i_sig:
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
apply (simp add: executions_def)
apply (pair x)
apply (rule execfrag_in_sig [THEN spec, THEN mp])
apply auto
done
scheds_in_sig: "is_trans_of A ==> x apply(simp a: execu)
apply (unfold schedules_def has_schedule_def [abs_def])
apply (fast intro!: exec_in_sig)
done
‹
(*only admissible in y, not if done in x!*) lemma‹
apply (pair_induct y simp: is_exec_frag_def)
apply (intro strip)
(Se(Seqcase_si
apply (pair a)
apply auto
done
>
conjI [THEN execfrag_prefixclosed [THEN
(*second prefix notion for Finite x*) lemma exec_prefix2closed [rule_format]:
<java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 apply (pair_induct\>x.\not>Enabled applydefinition_:(,) \Rightarrow> 'a'execution bool" apply apply (pair a)
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.