First corrections inrelation to the reviews
ci/woodpecker/push/build Pipeline was successful
Details
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 8.5 KiB |
|
@ -257,7 +257,6 @@ ITP community allowing a deeper structuring of mathematical libraries
|
||||||
such as the Archive of Formal Proofs (AFP).
|
such as the Archive of Formal Proofs (AFP).
|
||||||
\<close>
|
\<close>
|
||||||
|
|
||||||
|
|
||||||
(*<*)
|
(*<*)
|
||||||
declare_reference*[casestudy::text_section]
|
declare_reference*[casestudy::text_section]
|
||||||
(*>*)
|
(*>*)
|
||||||
|
@ -343,7 +342,7 @@ doc_class requirement = text_element + (* derived from text_element *)
|
||||||
long_name ::"string option" (* an optional string attribute *)
|
long_name ::"string option" (* an optional string attribute *)
|
||||||
is_concerned::"role set" (* roles working with this req. *)
|
is_concerned::"role set" (* roles working with this req. *)
|
||||||
\<close>}
|
\<close>}
|
||||||
This ODL class definition maybe part of one or more Isabelle theory--files capturing the entire
|
This ODL class definition maybe part of one or more Isabelle theory-files capturing the entire
|
||||||
ontology definition. Isabelle's session management allows for pre-compiling them before being
|
ontology definition. Isabelle's session management allows for pre-compiling them before being
|
||||||
imported in the actual target documentation required to be compliant to this ontology.
|
imported in the actual target documentation required to be compliant to this ontology.
|
||||||
|
|
||||||
|
@ -499,6 +498,14 @@ text*[resultProof::myresult, evidence = "proof", property="[@{thm \<open>HOL.ref
|
||||||
|
|
||||||
text*[resultProof2::myresult, evidence = "proof", property="[@{thm \<open>HOL.sym\<close>}]"]\<open>\<close>
|
text*[resultProof2::myresult, evidence = "proof", property="[@{thm \<open>HOL.sym\<close>}]"]\<open>\<close>
|
||||||
|
|
||||||
|
term*\<open>@{myauthor \<open>church\<close>}\<close>
|
||||||
|
(*term*\<open>@{myauthor \<open>churche\<close>}\<close>*)
|
||||||
|
|
||||||
|
value*\<open>email @{myauthor \<open>church\<close>}\<close>
|
||||||
|
(*value*\<open>email @{myauthor \<open>churche\<close>}\<close>*)
|
||||||
|
|
||||||
|
(*assert*\<open>@{myresult \<open>resultProof\<close>} = @{myresult \<open>resultProof2\<close>}\<close>*)
|
||||||
|
|
||||||
(*text*[introduction1::myintroduction, authored_by = "{@{myauthor \<open>church\<close>}}", level = "Some 0"]\<open>\<close>*)
|
(*text*[introduction1::myintroduction, authored_by = "{@{myauthor \<open>church\<close>}}", level = "Some 0"]\<open>\<close>*)
|
||||||
|
|
||||||
(*text*[claimNotion::myclaim, authored_by = "{@{myauthor \<open>church\<close>}}", based_on= "[\<open>Notion1\<close>, \<open>Notion2\<close>]", level = "Some 0"]\<open>\<close>*)
|
(*text*[claimNotion::myclaim, authored_by = "{@{myauthor \<open>church\<close>}}", based_on= "[\<open>Notion1\<close>, \<open>Notion2\<close>]", level = "Some 0"]\<open>\<close>*)
|
||||||
|
@ -525,7 +532,7 @@ text\<open>
|
||||||
\<^item> Ontological validation of the term: the meta-data of term antiquotations is
|
\<^item> Ontological validation of the term: the meta-data of term antiquotations is
|
||||||
parsed and checked in the logical context,
|
parsed and checked in the logical context,
|
||||||
\<^item> Elaboration of term antiquotations: depending of the antiquotation specific
|
\<^item> Elaboration of term antiquotations: depending of the antiquotation specific
|
||||||
elaboration function, they antiquotations containing references were replaced,
|
elaboration function, the antiquotations containing references were replaced,
|
||||||
for example, by the object they refer to in the logical context,
|
for example, by the object they refer to in the logical context,
|
||||||
\<^item> Generation of markup information for the Isabelle/PIDE, and
|
\<^item> Generation of markup information for the Isabelle/PIDE, and
|
||||||
\<^item> Code generation:
|
\<^item> Code generation:
|
||||||
|
@ -537,9 +544,10 @@ text\<open>
|
||||||
and to evaluate a term (the command \<^theory_text>\<open>value\<close>).
|
and to evaluate a term (the command \<^theory_text>\<open>value\<close>).
|
||||||
We provide the equivalent commands, respectively \<^theory_text>\<open>term*\<close> and \<^theory_text>\<open>value*\<close>, which
|
We provide the equivalent commands, respectively \<^theory_text>\<open>term*\<close> and \<^theory_text>\<open>value*\<close>, which
|
||||||
additionally support a validation and elaboration phase.
|
additionally support a validation and elaboration phase.
|
||||||
|
We also provide an \<^theory_text>\<open>assert*\<close>-command which checks
|
||||||
|
that the evaluation of a term returns \<^const>\<open>True\<close> and fails in other cases.
|
||||||
Note that term antiquotations are admitted in all \<^dof> commands, not just
|
Note that term antiquotations are admitted in all \<^dof> commands, not just
|
||||||
\<^theory_text>\<open>term*\<close> and \<^theory_text>\<open>value*\<close>.
|
\<^theory_text>\<open>term*\<close>, \<^theory_text>\<open>value*\<close> and \<^theory_text>\<open>assert*\<close>.
|
||||||
\<close>
|
\<close>
|
||||||
|
|
||||||
(*<*)
|
(*<*)
|
||||||
|
@ -601,7 +609,7 @@ text*[claimNotion::myclaim, authored_by = "{@{myauthor \<open>church\<close>}}",
|
||||||
In the instance \<^theory_text>\<open>introduction1\<close>, the term antiquotation \<^theory_text>\<open>@{myauthor \<open>church\<close>}\<close>,
|
In the instance \<^theory_text>\<open>introduction1\<close>, the term antiquotation \<^theory_text>\<open>@{myauthor \<open>church\<close>}\<close>,
|
||||||
or its equivalent notation \<^term>\<open>@{myauthor \<open>church\<close>}\<close>, denotes
|
or its equivalent notation \<^term>\<open>@{myauthor \<open>church\<close>}\<close>, denotes
|
||||||
the instance \<^theory_text>\<open>church\<close> of the class \<^typ>\<open>myauthor\<close>,
|
the instance \<^theory_text>\<open>church\<close> of the class \<^typ>\<open>myauthor\<close>,
|
||||||
where \<^theory_text>\<open>church\<close> is an \<^hol>-string.
|
where \<^theory_text>\<open>church\<close> is a \<^hol>-string.
|
||||||
One can now reference a class instance in a \<^theory_text>\<open>term*\<close> command.
|
One can now reference a class instance in a \<^theory_text>\<open>term*\<close> command.
|
||||||
In the command \<^theory_text>\<open>term*\<open>@{myauthor \<open>church\<close>}\<close>\<close>
|
In the command \<^theory_text>\<open>term*\<open>@{myauthor \<open>church\<close>}\<close>\<close>
|
||||||
the term \<^term>\<open>@{myauthor \<open>church\<close>}\<close> is type-checked, \<^ie>, the command \<^theory_text>\<open>term*\<close> checks that
|
the term \<^term>\<open>@{myauthor \<open>church\<close>}\<close> is type-checked, \<^ie>, the command \<^theory_text>\<open>term*\<close> checks that
|
||||||
|
@ -670,10 +678,11 @@ declare_reference*["term-context-equality-evaluation"::figure]
|
||||||
|
|
||||||
text\<open>
|
text\<open>
|
||||||
Since term antiquotations are logically uninterpreted constants,
|
Since term antiquotations are logically uninterpreted constants,
|
||||||
it is possible to compare class instances logically. \<^figure>\<open>term-context-equality-evaluation\<close>
|
it is possible to compare class instances logically. The assertion
|
||||||
shows that the two class instances \<^theory_text>\<open>resultProof\<close> and \<^theory_text>\<open>resultProof2\<close> are not equivalent
|
in the \<^figure>\<open>term-context-equality-evaluation\<close> fails:
|
||||||
because their attribute \<^term>\<open>property\<close> differ.
|
the two class instances \<^theory_text>\<open>resultProof\<close> and \<^theory_text>\<open>resultProof2\<close> are not equivalent
|
||||||
When \<^theory_text>\<open>value*\<close> evaluates the term,
|
because their attribute \<^term>\<open>property\<close> differs.
|
||||||
|
When \<^theory_text>\<open>assert*\<close> evaluates the term,
|
||||||
the term antiquotations \<^term>\<open>@{thm \<open>HOL.refl\<close>}\<close> and \<^term>\<open>@{thm \<open>HOL.sym\<close>}\<close> are checked
|
the term antiquotations \<^term>\<open>@{thm \<open>HOL.refl\<close>}\<close> and \<^term>\<open>@{thm \<open>HOL.sym\<close>}\<close> are checked
|
||||||
against the global context to validate that the \<^hol>-strings \<^term>\<open>\<open>HOL.refl\<close>\<close> and \<^term>\<open>\<open>HOL.sym\<close>\<close>
|
against the global context to validate that the \<^hol>-strings \<^term>\<open>\<open>HOL.refl\<close>\<close> and \<^term>\<open>\<open>HOL.sym\<close>\<close>
|
||||||
reference existing theorems.
|
reference existing theorems.
|
||||||
|
@ -772,8 +781,8 @@ text\<open>
|
||||||
Any class definition generates term antiquotations checking a class instance or
|
Any class definition generates term antiquotations checking a class instance or
|
||||||
the set of instances in a particular logical context; these references were
|
the set of instances in a particular logical context; these references were
|
||||||
elaborated to objects they refer to.
|
elaborated to objects they refer to.
|
||||||
This paves the way for a new mechanism to query the ``current'' instances presented as a
|
This paves the way for a new mechanism to query the ``current'' instances presented
|
||||||
list of \<^hol> \<^type>\<open>list\<close>.
|
as a \<^hol> \<^type>\<open>list\<close>.
|
||||||
Arbitrarily complex queries can therefore be defined inside the logical language.
|
Arbitrarily complex queries can therefore be defined inside the logical language.
|
||||||
Thus, to get the list of the properties of the instances of the class \<^typ>\<open>myresult\<close>,
|
Thus, to get the list of the properties of the instances of the class \<^typ>\<open>myresult\<close>,
|
||||||
or to get the list of the authors of the instances of the \<^typ>\<open>myintroduction\<close> class,
|
or to get the list of the authors of the instances of the \<^typ>\<open>myintroduction\<close> class,
|
||||||
|
@ -1046,7 +1055,7 @@ definition Computer_Hardware_to_Hardware_morphism ::
|
||||||
map Product_to_Component_morphism
|
map Product_to_Component_morphism
|
||||||
(Computer_Hardware.composed_of \<sigma>) \<rparr>"
|
(Computer_Hardware.composed_of \<sigma>) \<rparr>"
|
||||||
\<close>}
|
\<close>}
|
||||||
\caption{An extract of a mapping definitions.}
|
\caption{An extract of a mapping definition.}
|
||||||
\label{fig-mapping-example}
|
\label{fig-mapping-example}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
@ -1216,7 +1225,7 @@ onto_class Field_of_mathematics =
|
||||||
\<close>}
|
\<close>}
|
||||||
defines the class \<^typ>\<open>Field_of_mathematics\<close> with an attribute \<^theory_text>\<open>Annotations\<close>
|
defines the class \<^typ>\<open>Field_of_mathematics\<close> with an attribute \<^theory_text>\<open>Annotations\<close>
|
||||||
which is a \<^type>\<open>list\<close> of \<^typ>\<open>annotation\<close>s.
|
which is a \<^type>\<open>list\<close> of \<^typ>\<open>annotation\<close>s.
|
||||||
We can even constraint the type of allowed \<^typ>\<open>annotation\<close>s with an invariant.
|
We can even constrain the type of allowed \<^typ>\<open>annotation\<close>s with an invariant.
|
||||||
Here the \<^theory_text>\<open>invariant restrict_annotation_F\<close> forces the \<^typ>\<open>annotation\<close>s to be
|
Here the \<^theory_text>\<open>invariant restrict_annotation_F\<close> forces the \<^typ>\<open>annotation\<close>s to be
|
||||||
a \<^const>\<open>label\<close> or a \<^const>\<open>comment\<close>.
|
a \<^const>\<open>label\<close> or a \<^const>\<open>comment\<close>.
|
||||||
Subsumption relation is straightforward.
|
Subsumption relation is straightforward.
|
||||||
|
@ -1276,7 +1285,7 @@ This limits their practical usefulness drastically. Our approach treats invarian
|
||||||
first-class citizens, and turns them into an object of formal study in, for example,
|
first-class citizens, and turns them into an object of formal study in, for example,
|
||||||
ontological mappings. Such a technology exists, to our knowledge, for the first time.
|
ontological mappings. Such a technology exists, to our knowledge, for the first time.
|
||||||
|
|
||||||
Our experiments with adaptions of existing ontologies from engineering and mathematics
|
Our experiments with adaptations of existing ontologies from engineering and mathematics
|
||||||
show that \<^dof>'s ODL has sufficient expressive power to cover all aspects
|
show that \<^dof>'s ODL has sufficient expressive power to cover all aspects
|
||||||
of languages such as OWL (with perhaps the exception of multiple inheritance on classes).
|
of languages such as OWL (with perhaps the exception of multiple inheritance on classes).
|
||||||
However, these ontologies have been developed specifically \<^emph>\<open>in\<close> OWL and target
|
However, these ontologies have been developed specifically \<^emph>\<open>in\<close> OWL and target
|
||||||
|
|