locale CFGExit = CFG sourcenode targetnode kind valid_edge Entry for sourcenode :: "'edge ==> 'node"and targetnode :: "'edge ==> 'node" and kind :: "'edge ==> 'state edge_kind"and valid_edge :: "'edge ==> bool" and Entry :: "'node" (‹'('_Entry'_')›) + fixesExit::"'node" (‹'('_Exit'_')›) assumes Exit_source [dest]: "[valid_edge a; sourcenode a = (_Exit_)]==> False" and Entry_Exit_edge: "∃a. valid_edge a ∧ sourcenode a = (_Entry_) ∧ targetnode a = (_Exit_) ∧ kind a = (λs. False)\<surd>"
begin
lemma Entry_noteq_Exit [dest]: assumes eq:"(_Entry_) = (_Exit_)"shows"False" proof - from Entry_Exit_edge obtain a where"sourcenode a = (_Entry_)" and"valid_edge a"by blast with eq show False by simp(erule Exit_source) qed
lemma valid_node_cases [consumes 1, case_names "Entry""Exit""inner"]: "[valid_node n; n = (_Entry_) ==> Q; n = (_Exit_) ==> Q; inner_node n ==> Q]==> Q" apply(auto simp:valid_node_def) apply(case_tac "sourcenode a = (_Entry_)") apply auto apply(case_tac "targetnode a = (_Exit_)") apply auto done
lemma path_Exit_source [dest]: assumes"(_Exit_) -as→* n'"shows"n' = (_Exit_)"and"as = []" using‹(_Exit_) -as→* n'› proof(induct n≡"(_Exit_)" as n' rule:path.induct) case (Cons_path n'' as n' a) from‹sourcenode a = (_Exit_)›‹valid_edge a›have False by -(rule Exit_source,simp_all)
{ case1with‹False›show ?case .. next case2with‹False›show ?case ..
} qed simp_all
lemma Exit_no_sourcenode[dest]: assumes isin:"(_Exit_) ∈ set (sourcenodes as)"and path:"n -as→* n'" shows False proof - from isin obtain ns' ns'' where"sourcenodes as = ns'@(_Exit_)#ns''" by(auto dest:split_list simp:sourcenodes_def) thenobtain as' as'' a where"as = as'@a#as''" and source:"sourcenode a = (_Exit_)" by(fastforce elim:map_append_append_maps simp:sourcenodes_def) with path have"valid_edge a"by(fastforce dest:path_split) with source show ?thesis by -(erule Exit_source) qed
end
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 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.