locale CFG = fixesN :: "symbol set" fixesT :: "symbol set" fixesR :: "rule set" fixesS :: "symbol" assumes disjunct_symbols: "N∩T = {}" assumes startsymbol_dom: "S∈N" assumes validRules: "∀ (N, α) ∈R. N ∈N∧ (∀ s ∈ set α. s ∈N∪T)" begin
definition is_terminal :: "symbol ==> bool" where "is_terminal s = (s ∈T)"
definition is_nonterminal :: "symbol ==> bool" where "is_nonterminal s = (s ∈N)"
lemma is_nonterminal_startsymbol:"is_nonterminal S" by (simp add: is_nonterminal_def startsymbol_dom)
definition is_symbol :: "symbol ==> bool" where "is_symbol s = (is_terminal s ∨ is_nonterminal s)"
definition is_sentence :: "sentence ==> bool" where "is_sentence s = list_all is_symbol s"
definition is_word :: "sentence ==> bool" where "is_word s = list_all is_terminal s"
definition derives1 :: "sentence ==> sentence ==> bool" where "derives1 u v = (∃ x y N α. u = x @ [N] @ y ∧ v = x @ α @ y ∧ is_sentence x ∧ is_sentence y ∧ (N, α) ∈R)"
definition derivations1 :: "(sentence × sentence) set" where "derivations1 = { (u,v) | u v. derives1 u v }"
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.