Using the Isabelle Ontology Framework Using the Isabelle Ontology Framework Linking the Formal with the Informal Linking the Formal with the Informal Achim D. Brucker, Idir Ait-Sadoune Achim D. Brucker, Idir Ait-Sadoune Paolo Crisafulli and Burkhart Wolff Paolo Crisafulli and Burkhart Wolff Université Paris-Saclay / IRT SystemX: Project PST Université Paris-Saclay / IRT SystemX: Project PST http://www.lri.fr/ ̃ wolff http://www.lri.fr/ ̃ wolff 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 1 1
Abstract Abstract Abstract : Abstract : While Isabelle is mostly known as part of Isabelle/HOL (an interactive theorem While Isabelle is mostly known as part of Isabelle/HOL (an interactive theorem prover), it actually provides a framework for developing a wide spectrum of prover), it actually provides a framework for developing a wide spectrum of appli- cations. A particular strength of the Isabelle framework is the combination appli- cations. A particular strength of the Isabelle framework is the combination of text editing, formal verification, and code generation. of text editing, formal verification, and code generation. Up to now, Isabelle’s document preparation system lacks a mechanism for en- Up to now, Isabelle’s document preparation system lacks a mechanism for en- suring the structure of different document types (as, e.g., required in suring the structure of different document types (as, e.g., required in certification processes) in general and, in particular, mechanism for linking certification processes) in general and, in particular, mechanism for linking informal and formal parts of a document. informal and formal parts of a document. In this paper, we present Isabelle/DOF, a novel Document Ontology Framework In this paper, we present Isabelle/DOF, a novel Document Ontology Framework on top of Isabelle. Isabelle/DOF allows for conventional typesetting as well as on top of Isabelle. Isabelle/DOF allows for conventional typesetting as well as formal development. We show how to model document ontologies inside formal development. We show how to model document ontologies inside Isabelle/DOF, how to use the resulting meta-information for enforcing a certain Isabelle/DOF, how to use the resulting meta-information for enforcing a certain document struc- ture, and discuss ontology-specific IDE support. document struc- ture, and discuss ontology-specific IDE support. 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 2 2
Objective Objective • Isa_DOF • Isa_DOF – a typed – a typed – Document Ontology Framework – Document Ontology Framework – built as plugin in Isabelle/HOL – built as plugin in Isabelle/HOL • Design objective: • Design objective: validation of links between formal validation of links between formal and semi-formal text-elements in and semi-formal text-elements in theory developments. theory developments. 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 3 3
Statement Statement • Isa_DOF is not an Ontology-Theory • Isa_DOF is not an Ontology-Theory 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 4 4
Statement Statement • Isa_DOF is not an Ontology-Theory • Isa_DOF is not an Ontology-Theory • Isabelle is not (only) an • Isabelle is not (only) an interactive theorem prover interactive theorem prover 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 5 5
Statement Statement • Isa_DOF is not an Ontology-Theory • Isa_DOF is not an Ontology-Theory • Isabelle is not (only) an • Isabelle is not (only) an interactive theorem prover interactive theorem prover • programming environment (mostly SML) • programming environment (mostly SML) • IDE and IDE-Framework (called PIDE) • IDE and IDE-Framework (called PIDE) • code-generators • code-generators • document generators • document generators Isabelle is the Eclipse of FM ! Isabelle is the Eclipse of FM ! 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 6 6
Statement Statement • Isabelle is not (only) an • Isabelle is not (only) an interactive theorem prover interactive theorem prover 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 7 7
Statement Statement • Isa_DOF is not an Ontology-Theory • Isa_DOF is not an Ontology-Theory • Isabelle is not (only) an • Isabelle is not (only) an interactive theorem prover interactive theorem prover • Isa_DOF is a Framework for • Isa_DOF is a Framework for ontology development in an ontology development in an ontology definition language, ontology definition language, not a specific ontology. not a specific ontology. 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 8 8
Plan of the Paper Plan of the Paper • Basics on Isabelle Doc Preparation • Basics on Isabelle Doc Preparation • Presenting some elements of • Presenting some elements of the ontology definition language. the ontology definition language. • Three examples: • Three examples: • our CICM paper itself • our CICM paper itself • math-exams in Isa_DOF • math-exams in Isa_DOF • a document for a high- • a document for a high- level certification in CENELEC level certification in CENELEC 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 9 9
Basics in Isabelle Doc Basics in Isabelle Doc Preparation Preparation “Theory” “Theory” • Files are separated in • Files are separated in cmd cmd A A cmd cmd (programmable) commands (programmable) commands cmd cmd B B cmd cmd • Isabelle/HOL comes with • Isabelle/HOL comes with cmd cmd C C cmd cmd a number of pre-defined a number of pre-defined D D cmd cmd commands for text-elements commands for text-elements allowing 'literate programming' allowing 'literate programming' – chapter ‹The Bible› – chapter ‹The Bible› – section ‹Introduction› – section ‹Introduction› – text ‹This is a text.› – text ‹This is a text.› – ... – ... 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 10 10
Basics in Isabelle Doc Basics in Isabelle Doc Preparation Preparation • text-elements are more than just • text-elements are more than just comments; they can contain `formal comments; they can contain `formal content' in form or anti-quotations content' in form or anti-quotations • pre-defined antiquotations are e.g. • pre-defined antiquotations are e.g. text‹ @{thm refl} of name @{thm [source] refl} text‹ @{thm refl} of name @{thm [source] refl} @{file "../../Isa_DOF.thy"} @{file "../../Isa_DOF.thy"} @{value "3+4::int"} @{value "3+4::int"} @{const hd} @{theory List} ... @{const hd} @{theory List} ... @{type bool} @{term [show_types] "f x = a + x"} › @{type bool} @{term [show_types] "f x = a + x"} › • antiquotations are checked in the IDE • antiquotations are checked in the IDE 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 11 11
Isa_DOF ODL Isa_DOF ODL • Document class definitions • Document class definitions • typed attributes • typed attributes • inheritance, overriding • inheritance, overriding • instances • instances mutable mutable 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 12 12
Isa_DOF text-elements Isa_DOF text-elements • A doc_class generates new antiquotations • A doc_class generates new antiquotations (including specific type-checking) (including specific type-checking) – title* [ meta-args ] ‹ text › – title* [ meta-args ] ‹ text › – chapter*[ meta-args ] ‹ text › – chapter*[ meta-args ] ‹ text › – section* [ meta-args ] ‹ text › – section* [ meta-args ] ‹ text › – text* [ meta-args ] ‹ text › – text* [ meta-args ] ‹ text › – . . . – . . . where meta-args have the form: where meta-args have the form: label::doc_class_id, attr 1 = term, ... attr n = term label::doc_class_id, attr 1 = term, ... attr n = term and where text may contain antiquotations and where text may contain antiquotations (standard an freshly generated ones). (standard an freshly generated ones). 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 13 13
Isa_DOF text-elements Isa_DOF text-elements • A new family of antiquotations • A new family of antiquotations generated from the ontology generated from the ontology – @{docref ‹...›} ... reference to a text element – @{docref ‹...›} ... reference to a text element – @{author ‹...›} ... typed reference to an – @{author ‹...›} ... typed reference to an author text element, see bef. author text element, see bef. – variants for forward references: – variants for forward references: declare_reference* [lalala::text_section] declare_reference* [lalala::text_section] ... text‹ @{docref (unchecked) ‹lalala›} -- ... text‹ @{docref (unchecked) ‹lalala›} -- produces no warning. › produces no warning. › – syntax to modify and access attributes of text- – syntax to modify and access attributes of text- elements. elements. 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 14 14
DEMO I DEMO I • our CICM Paper • our CICM Paper 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 15 15
DEMO II DEMO II • A Math - Exam • A Math - Exam 08/15/18 08/15/18 B. Wolff -CICM 2018 B. Wolff -CICM 2018 16 16
Recommend
More recommend