the omdoc import/export of hets
TRANSCRIPT
The OMDoc Import/Export of Hets
Ewaryst Schulz
DFKI Bremen, Germanyhttp://www.informatik.uni-bremen.de/~ewaryst
Conferences on Intelligent Computer Mathematics 2010Content Math Training Camp
Paris, France7th July 2010
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
The Hets SystemThe Hets System
OMDoc
Other Systems
OMDoc-based Services
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
The Hets SystemThe Hets System
OMDoc
Other Systems
OMDoc-based Services
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Hets ResourcesHets Resources
I This Document:http://www.informatik.uni-bremen.de/~ewaryst/CMTC2010.pdf
I Hets:http://www.informatik.uni-bremen.de/agbkb/forschung/
formal_methods/CoFI/hets/
I Hets Library:https://svn-agbkb.informatik.uni-bremen.de/Hets-lib/trunk/
I Hets OMDoc Content Dictionaries:https://svn-agbkb.informatik.uni-bremen.de/Hets-OMDoc/
trunk/ContentDictionaries/
I CASL:http://www.informatik.uni-bremen.de/cofi/wiki/
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
CASL SpecificationCASL Specification
library Basic/Algebra I
spec Monoid =sort Elemops e : Elem;
∗ : Elem × Elem → Elem, assoc, unit e
spec CommutativeMonoid = Monoidthen op ∗ : Elem × Elem → Elem, comm
spec Group = Monoidthen ∀ x : Elem • ∃ x’ : Elem • x’ ∗ x = e %(inv Group)%
...Source: https://svn-agbkb.informatik.uni-bremen.de/Hets-lib/trunk/Basic/Algebra_I.casl
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Development GraphDevelopment Graph
I Development Graph of Algebra Library
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
OMDoc TranslationOMDoc Translation
<omdoc v e r s i o n=” 1 . 6 ” name=” B a s i c / A l g e b r a I ”><t h e o r y name=”Monoid” meta=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc? c a s l ”>
<c o n s t a n t name=”Elem” r o l e=” t y p e ”><t y p e><OMOBJ>
<OMS base=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc”module=” c a s l ” name=” s o r t ” />
</OMOBJ></ t y p e></ c o n s t a n t><c o n s t a n t name=” ∗ ” r o l e=” o b j e c t ”>
<t y p e><OMOBJ>
<OMA><OMS base=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc”
module=” c a s l ” name=” f u n t y p e ”/><OMS name=”Elem” /><OMS name=”Elem” /><OMS name=”Elem” />
</OMA></OMOBJ></ t y p e></ c o n s t a n t>
. . .
</ t h e o r y><t h e o r y name=” CommutativeMonoid ” meta=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc? c a s l ”>
<s t r u c t u r e name=” gn imp 0 ” from=”? Monoid”><open name=”Elem” as=”Elem” />
. . .
</omdoc>The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Same Name Same Thing PrincipleSame Name Same Thing Principle
spec Monoid =sort Elemops e : Elem;
∗ : Elem × Elem → Elem, assoc, unit e
spec Commutative =sort Elemop ∗ : Elem × Elem → Elem, comm
spec CommutativeMonoid = Monoid and Commutative
I Elem from Monoid and from Commutative are identified!
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Same Name Same Thing PrincipleSame Name Same Thing Principle
spec Monoid =sort Elemops e : Elem;
∗ : Elem × Elem → Elem, assoc, unit e
spec Commutative =sort Elemop ∗ : Elem × Elem → Elem, comm
spec CommutativeMonoid = Monoid and Commutative
I Elem from Monoid and from Commutative are identified!
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Same Name Same Thing Principlecont.
Same Name Same Thing Principlecont.
I Corresponding OMDoc fragment
<t h e o r y name=” CommutativeMonoid ” meta=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc? c a s l ”><s t r u c t u r e name=” gn imp 0 ” from=”? Monoid”>
<open name=”Elem” as=”Elem” />. . .
</ s t r u c t u r e><s t r u c t u r e name=” gn imp 1 ” from=”? Commutative ”>
<c o n a s s name=”Elem”><OMOBJ>
<OMS name=”Elem” /></OMOBJ>
</ c o n a s s>. . .
</ s t r u c t u r e></ t h e o r y>
I name in open and conass interpreted in source-context of structure
I as, OMOBJ interpreted in current context
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Subsorts and OverloadingSubsorts and Overloading
spec Int =sorts Nat < Int; Elemops 0 : Nat;
+ : Int × Int → Int;+ : Nat × Nat → Nat;+ : Elem × Elem → Elem;∗ : Nat × Int → Int;∗ : Int × Nat → Int
vars x, y : Elem; n, m : Nat• x + y = y + x %(commE)%
• n + m = m + n %(commN)%
• n ∗ m = m ∗ n %(commMult)%
end
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
Subsorts and Overloading cont.Subsorts and Overloading cont.
I Corresponding OMDoc fragment
<t h e o r y name=” I n t ” meta=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc? c a s l ”>. . .<c o n s t a n t name=” + ” r o l e=” o b j e c t ”>
<t y p e><OMOBJ xmlns:om=” h t t p : //www. openmath . org /OpenMath”> . . .
<OMA><OMS base=” h t t p : // cds . omdoc . org / l o g i c s / c a s l / c a s l . omdoc”
module=” c a s l ” name=” f u n t y p e ” /><OMS name=”Elem” /><OMS name=”Elem” /><OMS name=”Elem” />
</OMA></OMOBJ></ t y p e></ c o n s t a n t><c o n s t a n t name=”%()% o v e r 1 : + ” r o l e=” o b j e c t ”>
<t y p e> . . .</ t y p e></ c o n s t a n t><n o t a t i o n f o r=”??%()% o v e r 1 : + ” r o l e=” c o n s t a n t ”>
<t e x t v a l u e=” + ” /></ n o t a t i o n>. . .
</ t h e o r y>
I Encoding of overloaded namesI notation stores the original name
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence
What else?What else?
If you have further questions such as
I How can I use Hets for my project?
I How can I integrate my logic in Hets?
I Should I use XSLT to translate an OMDoc from logic A to logic B?
I How could I design an OMDoc interface for my tool?
I can probably answer them...
The OMDoc Import/Export of HetsEwaryst Schulz
German Research Centerfor Artificial Intelligence