section‹Sequential Automata› theory SA imports Expr begin
definition
SeqAuto :: "['s set, 's, (('s,'e,'d)label) set, (('s,'e,'d)trans) set] => bool"where "SeqAuto S I L D = (I ∈ S ∧ S ≠ {} ∧ finite S ∧ finite D ∧ (∀ (s,l,t) ∈ D. s ∈ S ∧ t ∈ S ∧ l ∈ L))"
lemma SeqAuto_EmptySet: "({@x .True}, (@x .True), {}, {}) ∈ {(S,I,L,D) | S I L D. SeqAuto S I L D}" by (unfold SeqAuto_def, auto)
definition "seqauto = { (S,I,L,D) | (S::'s set) (I::'s) (L::(('s,'e,'d)label) set) (D::(('s,'e,'d)trans) set). SeqAuto S I L D}"
definition States :: "(('s,'e,'d)seqauto) => 's set"where "States = fst o Rep_seqauto"
definition
InitState :: "(('s,'e,'d)seqauto) => 's"where "InitState = fst o snd o Rep_seqauto"
definition
Labels :: "(('s,'e,'d)seqauto) => (('s,'e,'d)label) set"where "Labels = fst o snd o snd o Rep_seqauto"
definition
Delta :: "(('s,'e,'d)seqauto) => (('s,'e,'d)trans) set"where "Delta = snd o snd o snd o Rep_seqauto"
definition
SAEvents :: "(('s,'e,'d)seqauto) => 'e set"where "SAEvents SA = (∪ l ∈ Label (Delta SA). (fst (action l)) ∪ (ExprEvents (expr l)))"
lemma Rep_seqauto_tuple: "Rep_seqauto SA = (States SA, InitState SA, Labels SA, Delta SA)" by (unfold States_def InitState_def Labels_def Delta_def, auto)
lemma Label_Delta_subset [simp]: "(Label (Delta SA)) ⊆ Labels SA" apply (unfold Label_def label_def) apply auto apply (cut_tac SA=SA in SeqAuto_select) apply (unfold SeqAuto_def) apply auto done
lemma Target_SAs_Delta_States: "Target (∪(Delta ` (SAs HA))) ⊆∪(States ` (SAs HA))" apply (unfold image_def Target_def target_def) apply auto apply (rename_tac SA Source Trigger Guard Action Update Target) apply (cut_tac SA=SA in SeqAuto_select) apply (unfold SeqAuto_def) apply auto done
lemma States_Int_not_mem: "(∪(States ` F) Int States SA) = {} ==> SA ∉ F" apply (unfold Int_def) apply auto apply (subgoal_tac "∃ S. S ∈ States SA") prefer2 apply (rule EX_State_SA) apply (erule exE) apply (rename_tac T) apply (erule_tac x=T in allE) apply auto done
lemma Delta_target_States [simp]: "[ T ∈ Delta A]==> target T ∈ States A" apply (cut_tac SA=A in SeqAuto_select) apply (unfold SeqAuto_def source_def target_def) apply auto done
lemma Delta_source_States [simp]: "[ T ∈ Delta A ]==> source T ∈ States A" apply (cut_tac SA=A in SeqAuto_select) apply (unfold SeqAuto_def source_def target_def) apply auto done
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-10)
¤
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.