diff --git a/examples/cytology/Cytology.thy b/examples/cytology/Cytology.thy new file mode 100644 index 0000000..825cdae --- /dev/null +++ b/examples/cytology/Cytology.thy @@ -0,0 +1,53 @@ +theory Cytology + imports "Isabelle_DOF.scholarly_paper" +begin + +text\A small example ontology for demonstration purposes. + The presentation follows closely: \<^url>\https://www.youtube.com/watch?v=URUJD5NEXC8\.\ + + +datatype protein = filaments | motor_proteins | rna |dna |nucleolus + + +onto_class organelles = description :: string + +onto_class ribosomes = organelles + description :: string + +onto_class mytochondria = organelles + description :: string + +onto_class golgi_apparatus = organelles + description :: string + +onto_class lysosome = organelles + description :: string + + +text\the control center of the cell:\ +onto_class nucleus = organelles + + description :: string + components :: "protein list" <= "[nucleolus]" + +definition is_nucleus + where "is_nucleus org \ \ tg d ta da . org = nucleus.make tg d ta da" +find_theorems (300) name:"Cytology" name:"nucleus" + + +onto_class cell = + name :: string + membrane :: string <= "\The outer boundary of the cell\" + cytoplasm :: string <= "\The outer boundary of the cell\" + cytoskeleton :: string <= "\includes the thread-like microfilaments\" + genetic_material :: "protein list" <= "[rna, dna]" + +text\Cells are devided into two categories: \<^emph>\procaryotic\ cells (unicellular organisms some +bacteria) without a substructuring in organelles and \<^emph>\eucaryotic\ cells, as occurring in +pluricellular organisms\ + +onto_class procaryotic_cells = cell + + name :: string + +onto_class eucaryotic_cells = cell + + organelles :: "organelles list" +(* +invariant has_nucleus :: "\\::eucaryotic_cells. \ org \ set (organelles \). is_nucleus org" +*) + +end