More compact authoring,

eliminated {* *}
This commit is contained in:
Burkhart Wolff 2019-01-31 10:38:18 +01:00
parent 9757268b55
commit a69b1ec2ff
1 changed files with 28 additions and 34 deletions

View File

@ -1,14 +1,14 @@
chapter \<open>An Outline of a CENELEC Ontology\<close>
text{* NOTE: An Ontology-Model of a certification standard such as CENELEC or
Common Criteria identifies:
text\<open> NOTE: An Ontology-Model of a certification standard such as CENELEC or Common Criteria
identifies:
- notions (conceptual \emph{categories}) having \emph{instances}
(similar to classes and objects),
- their subtype relation (eg., a "SRAC" is an "assumption"),
- their syntactical structure
(for the moment: defined by regular expressions describing the
order of category instances in the overall document as a regular language)
*}
\<close>
(*<<*)
theory CENELEC_50126
@ -17,9 +17,9 @@ begin
(*>>*)
text{* Excerpt of the BE EN 50128:2011 *}
text\<open> Excerpt of the BE EN 50128:2011 \<close>
section {* Requirements-Analysis related Categories *}
section\<open> Requirements-Analysis related Categories \<close>
doc_class requirement =
long_name :: "string option"
@ -30,7 +30,7 @@ doc_class requirement_analysis =
accepts "\<lbrace>requirement\<rbrace>\<^sup>+"
text{*The category @{emph \<open>hypothesis\<close>} is used for assumptions from the
text\<open>The category @{emph \<open>hypothesis\<close>} is used for assumptions from the
foundational mathematical or physical domain, so for example:
\<^item> the Mordell-Lang conjecture holds,
\<^item> euklidian geometry is assumed, or
@ -38,7 +38,7 @@ text{*The category @{emph \<open>hypothesis\<close>} is used for assumptions fro
Their acceptance is inherently outside the scope of the model
and can only established inside certification process by
authority argument.
*}
\<close>
datatype hyp_type = physical | mathematical | computational | other
@ -48,39 +48,35 @@ typ "CENELEC_50126.requirement"
doc_class hypothesis = requirement +
hyp_type :: hyp_type <= physical (* default *)
text{* The following sub-class of security related hypothesis might comprise, for example:
text\<open> The following sub-class of security related hypothesis might comprise, for example:
\<^item> @{term "P \<noteq> NP"},
\<^item> or the computational hardness of certain functions
relevant for cryptography (like prime-factorization).
*}
relevant for cryptography (like prime-factorization).\<close>
doc_class security_hyp = hypothesis +
hyp_type :: hyp_type <= physical (* default *)
text{*The category @{emph \<open>assumption\<close>} is used for domain-specific assumptions.
It has formal, semi-formal and informal sub-categories. They have to be
tracked and discharged by appropriate validation procedures within a
certification process, by it by test or proof. *}
text\<open>The category \<^emph>\<open>assumption\<close> is used for domain-specific assumptions. It has formal, semi-formal
and informal sub-categories. They have to be tracked and discharged by appropriate
validation procedures within a certification process, by it by test or proof. \<close>
datatype ass_kind = informal | semiformal | formal
doc_class assumption = requirement +
assumption_kind :: ass_kind <= informal
text{*The category @{emph \<open>exported constraint\<close>} (or @{emph \<open>ec\<close>} for short)
is used for formal assumptions, that arise during the analysis,
design or implementation and have to be tracked till the final
evaluation target, and discharged by appropriate validation procedures
within the certification process, by it by test or proof. *}
text\<open> The category \<^emph>\<open>exported constraint\<close> (or \<^emph>\<open>ec\<close> for short) is used for formal assumptions, that
arise during the analysis, design or implementation and have to be tracked till the final
evaluation target, and discharged by appropriate validation procedures within the certification
process, by it by test or proof. \<close>
doc_class ec = assumption +
assumption_kind :: ass_kind <= (*default *) formal
text{*The category @{emph \<open>safety related application condition\<close>} (or @{emph \<open>srac\<close>}
for short) is used for @{typ ec}'s that establish safety properties
of the evaluation target. Their track-ability throughout the certification
is therefore particularly critical. *}
text\<open> The category \<^emph>\<open>safety related application condition\<close> (or \<^emph>\<open>srac\<close> for short) is used for
@{typ ec}'s that establish safety properties of the evaluation target. Their track-ability
throughout the certification is therefore particularly critical. \<close>
doc_class srac = ec +
assumption_kind :: ass_kind <= (*default *) formal
@ -95,7 +91,7 @@ doc_class security = ec +
assumption_kind :: ass_kind <= (*default *) formal
section {* Design related Categories *}
section\<open> Design related Categories \<close>
doc_class design_item =
description :: string
@ -106,7 +102,7 @@ doc_class interface = design_item +
kind :: design_kind
section {* Requirements-Analysis related Categories *}
section\<open> Requirements-Analysis related Categories \<close>
doc_class test_item =
nn :: "string option"
@ -161,10 +157,9 @@ doc_class test_documentation =
section{* Testing and Validation *}
section\<open> Testing and Validation \<close>
ML{*
ML\<open>
DOF_core.name2doc_class_name @{theory} "requirement";
DOF_core.name2doc_class_name @{theory} "srac";
DOF_core.is_defined_cid_global "srac" @{theory};
@ -178,26 +173,25 @@ DOF_core.is_subclass @{context} "CENELEC_50126.ec" "CENELEC_50126.test_require
val {docobj_tab={maxano, tab=ref_tab},docclass_tab=class_tab,...} = DOF_core.get_data @{context};
Symtab.dest ref_tab;
Symtab.dest class_tab;
*}
\<close>
ML{*
ML\<open>
"XXXXXXXXXXXXXXXXX";
DOF_core.get_attributes_local "srac" @{context};
@{term assumption_kind}
*}
\<close>
ML{*
ML\<open>
DOF_core.name2doc_class_name @{theory} "requirement";
Syntax.parse_typ @{context} "requirement";
val Type(t,_) = Syntax.parse_typ @{context} "requirement" handle ERROR _ => dummyT;
Syntax.read_typ @{context} "hypothesis" handle _ => dummyT;
Proof_Context.init_global;
*}
\<close>
end