Commit Graph

448 Commits

Author SHA1 Message Date
Makarius Wenzel 516f5d2f79 Merely use session structure instead of component settings. 2022-10-24 22:11:30 +02:00
Makarius Wenzel 5ac41a72ac More accurate treatment of sty files: do not just copy from all examples. 2022-10-24 21:58:10 +02:00
Makarius Wenzel 15feeb7d92 More standard package name: appears to work properly in Isabelle2022. 2022-10-24 21:38:01 +02:00
Makarius Wenzel 0c8a0e1d63 Adapted to Isabelle/1ac2416e8432 -- approx. Isabelle2022 release. 2022-10-24 21:30:49 +02:00
Burkhart Wolff 0aec98b95a cell row column parser setup
ci/woodpecker/push/build Pipeline was successful Details
2022-10-11 21:43:13 +02:00
Burkhart Wolff 43871ced48 text-term* and text-value* antiquotation syntax, and more on tables.
ci/woodpecker/push/build Pipeline was successful Details
2022-10-11 21:00:33 +02:00
Burkhart Wolff 0fa1048d6d description of the tab model.
ci/woodpecker/push/build Pipeline was successful Details
2022-10-10 13:51:54 +02:00
Burkhart Wolff 33490f8f15 table cell syntax implemented; roughly tested.
ci/woodpecker/push/build Pipeline was successful Details
2022-10-09 14:01:53 +02:00
Burkhart Wolff 01632b5251 hoisting cm pt syntax intp COL
ci/woodpecker/push/build Pipeline was successful Details
2022-10-06 16:59:42 +02:00
Burkhart Wolff 8a54831295 more elements for table parser.
ci/woodpecker/push/build Pipeline was successful Details
2022-10-03 08:23:05 +02:00
Burkhart Wolff 427226f593 some stuff with tables
ci/woodpecker/push/build Pipeline was successful Details
2022-09-27 12:16:31 +02:00
Achim D. Brucker 7f500dc257 Migration to latest Isabelle development version. 2022-08-11 23:04:07 +01:00
Achim D. Brucker 9f2e2b53a4 Merge branch 'main' into Isabelle_dev
ci/woodpecker/push/build Pipeline failed Details
2022-08-01 22:58:21 +01:00
Burkhart Wolff 583636404f renamed cenelec_document into cenelec_report.
ci/woodpecker/push/build Pipeline was successful Details
2022-08-01 21:50:49 +02:00
Burkhart Wolff 8a9684590a pass through miniôdo: deeper ontological reasoning, less LaTeX.
ci/woodpecker/push/build Pipeline was successful Details
2022-08-01 21:42:32 +02:00
Burkhart Wolff 81c4ae2c13 first version of new commands onto_class // doc_class
ci/woodpecker/push/build Pipeline was successful Details
2022-08-01 15:53:33 +02:00
Achim D. Brucker f40d33b9ed Ad-hoc port to development version of Isabelle.
ci/woodpecker/push/build Pipeline failed Details
2022-07-17 22:46:56 +01:00
Achim D. Brucker 6a94728747 Port to development version of Isabelle. 2022-07-17 20:47:17 +01:00
Burkhart Wolff c8a3c58f7f end of discussion with Achim
ci/woodpecker/push/build Pipeline was successful Details
2022-06-30 12:58:49 +02:00
Achim D. Brucker b24ede4400 LIPIcs needs to stay unsupported, right now. 2022-06-29 21:46:39 +01:00
Achim D. Brucker 205aa5a6b1 Moved core ACM styles into DOF-core.sty. 2022-06-29 21:45:09 +01:00
Achim D. Brucker c8f3bfc65d Removed unused imports. 2022-06-29 20:17:40 +01:00
Achim D. Brucker 44f9317b35 Integrated dof-common.tex into DOF-core.sty. 2022-06-29 20:12:32 +01:00
Achim D. Brucker 6c2a0d6876 Renaming to ensure compliance with naming restrictions.
ci/woodpecker/push/build Pipeline was successful Details
2022-06-29 19:08:56 +01:00
Achim D. Brucker 6c0d325673 Use full qualified name for templates.
ci/woodpecker/push/build Pipeline was successful Details
2022-06-26 19:06:49 +01:00
Achim D. Brucker b40069bedd Use full qualified name for templates. 2022-06-26 19:06:45 +01:00
Achim D. Brucker 9ded308371 Use full qualified name for scholarly_paper.
ci/woodpecker/push/build Pipeline was successful Details
2022-06-26 17:12:09 +01:00
Achim D. Brucker e6ca682114 Merge branch 'main' of git.logicalhacking.com:Isabelle_DOF/Isabelle_DOF
ci/woodpecker/push/build Pipeline failed Details
2022-06-26 16:01:57 +01:00
Burkhart Wolff 013296f25e experiments on tables
ci/woodpecker/push/build Pipeline was successful Details
2022-06-26 13:48:03 +02:00
Achim D. Brucker 7c50ffb3af Refactoring. 2022-06-25 17:15:04 +01:00
Achim D. Brucker 3a9826901a Cleanup. 2022-06-25 17:11:01 +01:00
Achim D. Brucker a54373ad2f Merge branch 'config_as_options' 2022-06-25 16:36:46 +01:00
Achim D. Brucker a973707a73 Implemented -h. 2022-06-24 17:02:12 +01:00
Achim D. Brucker e138855623 Use comment.sty in LaTeX mode by default. 2022-06-24 16:07:25 +01:00
Achim D. Brucker 5278608b89 Merging main into config_as_options. 2022-06-24 15:57:59 +01:00
Achim D. Brucker 59658cea6f mkroot_DOF is not replaced by dof_mkroot, which is implemented in Scala. 2022-06-24 14:55:53 +01:00
Achim D. Brucker ef674b5ae2 Migrated, tested, and debugged new configuration setup. 2022-06-24 14:48:49 +01:00
Achim D. Brucker ac8c939179 Initial setup using configurations as options, retiring both the build script (LaTeX build) and the mkroo_DOF script (replaced by a Scala-based tooling). 2022-06-24 14:02:19 +01:00
Burkhart Wolff c16ec333f1 experiments on multi-commands - multi-figures
ci/woodpecker/push/build Pipeline was successful Details
2022-06-24 08:15:03 +02:00
Burkhart Wolff d1e4fd173b Experiments with multi-commands and -figures.
ci/woodpecker/push/build Pipeline was successful Details
- added multi-arg syntax (only one arg evaluated so far)
- added figure_content built-in antiquotation
- added new Figure* - multi-arg command.
2022-06-22 16:32:31 +02:00
Burkhart Wolff 43c857af2c roughly ported Latex testbench to 21-1
ci/woodpecker/push/build Pipeline was successful Details
2022-06-17 20:35:32 +02:00
Burkhart Wolff 0cc010cecc debugged merge
ci/woodpecker/push/build Pipeline was successful Details
2022-06-17 09:37:43 +02:00
Burkhart Wolff ba7bd6dc03 Merge branch 'main' of https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF
ci/woodpecker/push/build Pipeline failed Details
2022-06-17 09:31:29 +02:00
Burkhart Wolff 43b0a3049f Modelling sample for tables 2022-06-17 09:31:17 +02:00
Nicolas Méric 03fd491d5d Implement CENELEC Table A.1
ci/woodpecker/push/build Pipeline was successful Details
- Add an eager and lazy invariants checking functions mechanism
  for low level invariants to allow the checking of invariants
  only when opening or closing a monitor instance.
  The state of the monitor instances traces evolves when declaring
  instances between open_monitor* and close_monitor* commands.
  This mechanism can capture the changes be defining
  invariants before or after traces are populated but not
  before and after, with the current mechanism.
  Two tables were added: docclass_eager_inv_tab
  and docclass_lazy_inv_tab to store these invariants
- Implement CENELEC_50128 Table A.1 using this mechanism
2022-06-13 07:56:53 +02:00
Nicolas Méric 9673359688 Enable high level invariants checking for some commands
ci/woodpecker/push/build Pipeline was successful Details
Enable high level invariants checking for the update_instance*
and close_monitor* commands
2022-05-27 17:14:17 +02:00
Nicolas Méric 5d1b271336 Allow access to the monitor table for low level invariants
ci/woodpecker/push/build Pipeline was successful Details
When defining low level invariants checking functions,
access to the monitor table might be useful.
So the table should be populated before the checking takes place.
2022-05-27 14:46:04 +02:00
Nicolas Méric 83c790d66a Handle normalization of trace attribute
ci/woodpecker/push/build Pipeline was successful Details
2022-05-26 12:56:21 +02:00
Nicolas Méric 9981c31966 Normalize docobj table value
ci/woodpecker/push/build Pipeline was successful Details
Normalize the record registered as value in the docobj table,
i.e., the logical value of a docitem (a class instance)
2022-05-25 17:10:57 +02:00
Nicolas Méric 319b39905f Update CENELEC_50128 implementation
ci/woodpecker/push/build Pipeline was successful Details
- Update phase datatype to be accurate with 7.3 in the standard
- Update cenelec_document class: according to the table C.1 in the
  standard, written by, first check, and second check can be optional.
  See Phase Planning line 4 in the table, for example
- Some specifications are external to the standard: implement them
  as external_specification subclasses
- Fix phases attributes of classes
2022-05-18 18:23:57 +02:00
Nicolas Méric c00c6ed31d Fix Terms and Definitons section in CENELEC
ci/woodpecker/push/build Pipeline was successful Details
2022-05-12 16:04:09 +02:00
Nicolas Méric ae3300ac2c Import of CENELEC_50128.thy changes from /ICFEM-2022
ci/woodpecker/push/build Pipeline was successful Details
2022-05-11 18:15:33 +02:00
Achim D. Brucker 61f167c29c Made all import paths globally qualified.
ci/woodpecker/push/build Pipeline was successful Details
2022-05-06 09:17:10 +01:00
Achim D. Brucker 2833deff90 Harmonizing the various root templates. 2022-04-22 20:51:42 +01:00
Achim D. Brucker a8424979eb Removed support for oldstyle font commands. 2022-04-21 22:59:11 +01:00
Achim D. Brucker 15e71fe189 Merge branch 'main' of git.logicalhacking.com:Isabelle_DOF/Isabelle_DOF
ci/woodpecker/push/build Pipeline was successful Details
2022-04-20 11:08:29 +01:00
Achim D. Brucker 45c23b4330 Fixed environment for isamarkupabstract. 2022-04-20 11:07:06 +01:00
Nicolas Méric d8fde4b4f4 Cleanup and add test for meta-args for assert*
ci/woodpecker/push/build Pipeline was successful Details
2022-04-19 14:05:52 +02:00
Achim D. Brucker 41e6c9ed02 Fixed file attributes.
ci/woodpecker/push/build Pipeline was successful Details
2022-04-18 09:44:44 +01:00
Achim D. Brucker cbad96aba5 Fixed file attributes. 2022-04-18 09:22:57 +01:00
Achim D. Brucker 82c9a07c1a Fixed file attributes. 2022-04-18 09:20:55 +01:00
Achim D. Brucker ae8b91ac4e Fixed file attributes. 2022-04-18 09:20:36 +01:00
Achim D. Brucker 0f3f5d4b56 Fixed file attributes. 2022-04-17 16:32:12 +01:00
Achim D. Brucker fee83a2a29 Remove outdated and obsoleted ontologies. 2022-04-16 09:13:31 +01:00
Achim D. Brucker 64b4eca5ea Avoid using natbib.
ci/woodpecker/push/build Pipeline failed Details
2022-04-15 21:56:01 +01:00
Achim D. Brucker 317c5a7759 Merge branch 'main' of git.logicalhacking.com:Isabelle_DOF/Isabelle_DOF
ci/woodpecker/push/build Pipeline failed Details
2022-04-15 21:03:59 +01:00
Achim D. Brucker 530783c23b Bug fix: handling of arguments for top-level author* command. 2022-04-15 20:49:05 +01:00
Nicolas Méric e3caad804b Fix {Theorem, Lemma}_default_class theory attributes
ci/woodpecker/push/build Pipeline was successful Details
Fix #11
2022-04-08 12:17:24 +02:00
Nicolas Méric 74420a932f Clean up check_invariants
ci/woodpecker/push/build Pipeline was successful Details
2022-04-07 15:36:01 +02:00
Nicolas Méric 8e1702d2da Add IDE reporting for attributes in meta-argument list
ci/woodpecker/push/build Pipeline was successful Details
2022-04-07 15:33:24 +02:00
Achim D. Brucker 609f09e919 Merge branch 'main' of git.logicalhacking.com:Isabelle_DOF/Isabelle_DOF
ci/woodpecker/push/build Pipeline was successful Details
2022-04-04 16:04:51 +01:00
Achim D. Brucker 0f5e5bf6f6 Bug fix: -o option not working (reporting an error claiming that ontologies could not be found). 2022-04-04 16:04:10 +01:00
Nicolas Méric b1f73e9235 Delete Isabelle marks file
ci/woodpecker/push/build Pipeline was successful Details
2022-04-01 11:54:49 +02:00
Nicolas Méric 9603311a9a Fix DOF manual and tests to work with assert*
ci/woodpecker/push/build Pipeline was successful Details
2022-04-01 09:54:16 +02:00
Burkhart Wolff 2351e00be6 corrected and re-inserted Ecclectic Man into build
ci/woodpecker/push/build Pipeline failed Details
2022-03-31 15:55:01 +02:00
Burkhart Wolff d2e1d77b01 some corrections in the Eccectic RefMan
ci/woodpecker/push/build Pipeline failed Details
2022-03-31 13:49:46 +02:00
Burkhart Wolff a68ecb4f11 ... 2022-03-31 10:12:46 +02:00
Burkhart Wolff 6a7b5c6afb fixed term* bug (non-evaluation of meta-args). Needs cleanup.
ci/woodpecker/push/build Pipeline failed Details
2022-03-31 06:57:18 +02:00
Burkhart Wolff 9403afd86f addressing the value* transmission problem - not yet solved completely
ci/woodpecker/push/build Pipeline failed Details
2022-03-30 17:54:02 +02:00
Nicolas Méric e4e4a708a5 Update assert* to use isabelle/DOF evaluation
ci/woodpecker/pr/build Pipeline failed Details
2022-03-30 08:12:17 +02:00
Nicolas Méric 444d6d077c Add eager and lazy elaboration
- Isabelle uses eager evaluation, so should the elaboration of terms
  which are evaluated.
  The value of instances are now registered in the data tables
  of Isabelle/DOF when fully elaborated, ie,
  term annotation antiquotations proposed by Isabelle/DOF in
  an instance value are replaced by its value before registration
  in Isabelle/DOF data
  A new field, input_term, stores the lazy elaboration
  and is used when elaboration is not wished
  (to print the original input term declared by the user, for example)
- Clean up the simplication mechanism of the internal trace attribute
  (used by monitor classes)
2022-03-29 15:22:44 +02:00
Nicolas Méric ec33e70bbf Loosen dependency on Toplevel.transition
Loosen the dependency of the implementation of value* and term*
on Toplevel.transition.
Toplevel.transition should be avoided as it has specific behaviors
like only allowing atomic transactions.
2022-03-29 15:22:44 +02:00
Achim D. Brucker f655d2a784 Removed adding build script (no longer needed).
ci/woodpecker/push/build Pipeline was successful Details
2022-03-27 21:40:51 +01:00
Achim D. Brucker d80d5b0538 Support for local styles and templates.
ci/woodpecker/push/build Pipeline was successful Details
2022-03-27 21:29:25 +01:00
Achim D. Brucker 7b8ae0a93d Make use of install script optional in favor of registration as Isabelle component. Style files, templates, and scripts are no longer installed into ISABELLE_USER_HOME.
ci/woodpecker/push/build Pipeline was successful Details
2022-03-27 13:21:55 +01:00
Achim D. Brucker 700855411e Do not register build script in default ROOT file (no longer needed). 2022-03-27 12:21:14 +01:00
Achim D. Brucker 5348a609be Official support for lipics-v2021 (fixes #13). 2022-03-27 12:20:49 +01:00
Achim D. Brucker 46c46af880 Removed outdated lipics v2019 setup. 2022-03-27 12:02:48 +01:00
Achim D. Brucker 7b4450450d Hide use of build script from users. 2022-03-27 12:02:15 +01:00
Achim D. Brucker 1d48fb810f Updated messages to users and removed outdated checks. 2022-03-27 11:01:20 +01:00
Achim D. Brucker 05e85edd91 Removed non-distribution note for llncs.cls. This class is now available on CTAN and part of TeXLive (at least from version 2022).
ci/woodpecker/push/build Pipeline failed Details
2022-03-26 21:31:05 +00:00
Achim D. Brucker 846237b515 Support for Isabelle 2021-1. 2022-03-26 21:25:40 +00:00
Achim D. Brucker aff78b0625 Restructuring.
ci/woodpecker/push/build Pipeline failed Details
2022-03-26 19:31:23 +00:00
Achim D. Brucker 3c49a9aaba Removed outdated test session. 2022-03-26 18:53:33 +00:00
Achim D. Brucker ef89a95307 Fixed oversight during merge and removed patches that are no longer needed. 2022-03-20 22:41:09 +00:00
Achim D. Brucker 62726920a7 Fixed oversight during merge and removed patches that are no longer needed. 2022-03-20 22:39:18 +00:00
Achim D. Brucker 2314b2191f Resolved merge conflict. 2022-03-20 20:49:46 +00:00
Achim D. Brucker bdc7aab6cf Minor syntax cleanup. 2022-03-20 14:55:56 +00:00
Nicolas Méric 2886f7df99 Update CENELEC_50128 theory
ci/woodpecker/push/build Pipeline failed Details
An application condition should be an assumption
2022-03-18 17:00:06 +01:00
Burkhart Wolff 63c0b1e442 cosmetics in Evaluation 2022-03-16 13:25:56 +01:00
Nicolas Méric 8bc2e60d2f Update high level invariants tests 2022-03-14 18:44:09 +01:00
Nicolas Méric eb9edd66d5 Clean up code 2022-03-14 16:17:28 +01:00
Nicolas Méric a332109dca Fix scheduling problem for term* and value*
Toplevel transition only allows atomic transactions.
So we avoid sequantial combinators
2022-03-14 15:27:13 +01:00
Burkhart Wolff 5af219469d Corrected scheduling problem of ML*. must be atomic transaction. 2022-03-14 12:23:54 +01:00
Achim D. Brucker 8efc1300b4 Manual import of changes from /2021-ITP-PMTI. 2022-03-11 11:30:34 +00:00
Burkhart Wolff e650892b48 changed 'L' - operator to 'Lang' in order to avoid name conflicts in papers. 2022-01-31 10:44:02 +01:00
Burkhart Wolff 35b47223b9 added category 'background' into scholarly paper 2022-01-31 10:42:52 +01:00
Achim D. Brucker 46325cc64b Added unofficial support for lipics-v2021 (warning: this requires a patched version of lipics-v2021.cls). 2022-01-30 22:52:48 +00:00
Nicolas Méric 76612ae6f3 Add checking of invariants for class instances
- Warning: the current implementation does yet not support
    some use-cases, like invariant on monitors,
    or the initialization of docitem without a class associated.
- Add first draft of the checking of invariants.
  For now, it is disabled by default because some cases
  are not yet supported, like the initialization of docitem
  without a class associated.
  ex: text*[sdf]‹ Lorem ipsum @{thm refl}›
- To enable the checking, one can use the theory attribute
  "invariants_checking" by declaring it in a theory like this:
  declare [[invariants_strict_checking = true]]
- A checking using basic tactics (unfolding and auto) can be enable
  with the "invariants_checking_with_tactics" theory attribute
  for specific use-cases
- The specification of invariants is now automatically abstracted,
  so one must define an invariant like this now:

  doc_class W =
  w::"int"
  invariant w :: "w σ ≥ 3"

  The old form:

  doc_class W =
  w::"int"
  invariant w :: "λσ. w σ ≥ 3"

  is now deprecated.
  The specification of the invariant still uses the σ-notation
  and is defined globally by the name component "invariantN"
- Update the invariants definition in the theories to match
  the new implementation
- Update the manual to explain this new feature
- Add small examples in src/tests/High_Level_Syntax_Invariants.thy
  and src/tests/Ontology_Matching_Example.thy
2022-01-24 17:30:48 +01:00
Makarius Wenzel 4352691e95 Support Isabelle2021-1 without patches:
in the next release it will be simpler again.
2021-12-20 21:02:57 +01:00
Makarius Wenzel 70617f59fe Avoid pointless Latex comments: as an example of how to re-define document output. 2021-12-19 17:51:38 +01:00
Makarius Wenzel 4e4995bde5 Isabelle/Scala build.props with some pro-forma services
(unusual package name prevents problems with Maven/IntelliJ).
2021-12-19 16:50:21 +01:00
Makarius Wenzel ec49f45966 Adaptations for Isabelle2021-1. 2021-12-18 23:06:51 +01:00
Burkhart Wolff 6c99612dcd Merge branch 'master' of https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF 2021-12-16 13:49:49 +01:00
Burkhart Wolff 3f09aca090 added paper frame, small things. 2021-12-16 13:49:44 +01:00
Nicolas Méric 541d2711bd Clean Up ISA check functions
Also remove some dead code
2021-12-13 17:21:46 +01:00
Nicolas Méric 18c0557d01 Add the possibility to make request on instances
- Add a new Term Annotation Antiquotation (TA)
  to allow requests on instances.
  Example:
  @{C-instances} will return all the instances of the class "C"
  defined in the generated theory
- Update ISA_transformers elaborate function signature to
  take into account the case where the term argument
  of a TA is irrelevant, for example when a TA has no argument.
  Example with the TA of the instances of a class:
  @{A-instances}
  Here the TA has no argument and none second level type checking is
  wished, so its associated check function can be the identity function
  with respect to the ISA_transformers chek function type.
- Add some request examples in Evaluation.thy
- Fix typos
2021-12-13 16:58:54 +01:00
Nicolas Méric d2a6106be5 Fix the record generation in class implementation
- Fix the generation of the record associated with
  a class and used for the logic.
  The old implementation generated a new attribute
  for each attribute defined by a subclass,
  even the ones that were overriding ones of the superclass.
  The new implementation generates the attributes of the subclass
  which are not overriding ones.
  Warning:
  It implies that overridden attributes in a subclass are not
  new attributes added to the theory context.
  So the base name of an attribute will refer to the attribute
  of the last declared class where it is defined.
  If ones wants to refer to atttributes, one should use
  long names, even in the invariants of a subclass definition
  which overrides the attribute used in the invariant.
  For example,
  in ~~/src/ontologies/scholarly_paper/scholarly_paper.thy:

  doc_class technical = text_section +
     definition_list :: "string list" <=  "[]"
     status          :: status <= "description"
     formal_results  :: "thm list"
     invariant L1    :: "λσ::technical. the (level σ) > 0"

  type_synonym tc = technical (* technical content *)

  doc_class example  = text_section +
     referentiable   :: bool <= True
     status          :: status <= "description"
     short_name      :: string <= "''''"

  doc_class math_content = tc +
     referentiable :: bool <= True
     short_name    :: string <= "''''"
     status        :: status <= "semiformal"
     mcc           :: "math_content_class" <= "thm"
     invariant s1  :: "λ σ::math_content. ¬referentiable σ ⟶ short_name σ = ''''"
     invariant s2  :: "λ σ::math_content. technical.status σ = semiformal"

  The class math_content overrride the attribute status
  of the class technical, by using the type synonym tc,
  but the base name of this attribute refers
  to the attribute of the class example where it is last defined
  and not just overridden.
  So in the invariant s2 of the class math_content,
  we must use the long name of the attribute,
  i.e. the base name "status" with its qualifier which refers
  to the superclass where it is defined, the class technical.

  Type synonyms as qualifiers are not yet supported.
- Qualify classes that only override attributes of their superclass
  as vitual classes by adding a virtual attribute.
  This attribute is used to discriminate virtual classes and generate
  an adequate make function to initialize their associated record.
  The implementation uses an hidden attribute (the tag_attribute)
  to force the virtual class to be concrete or the logic
  by having a full new record definition associated with it.
  For example:

  doc_class W =
    a::"int" <= "1"

  doc_class X = W +
    a::"int" <= "2"

  The class X is tagged as a virtual class and
  the record make functions of the classes W and X are:

  W.make W_tag_attribute W_a
  X.make X_tag_attribute X_a X_tag_attribute

  So a record definition is added to the theory context for each class,
  even though a virtual class only overrides
  attributes of its superclass.
  This behavior allows us to support definitions of new default values
  for attributes in the subclass, as shown in the example.
- Factorize make name components
- Use Record name components instead of strings to refer to Record
  components
- Fix typos
2021-12-07 10:04:47 +01:00
Nicolas Méric 08c101c544 Implement built-ins referential equivalence
- Add a first implementation of a referential equivalence
  for the built-ins term annotations (TA)
- Some built-ins remain as unspecified constants:
  - the docitem TA offers a way to check the reference of
    class instances without checking the instances type.
    It must be avoided for certification
  - the termrepr TA is left as an unspecified constant for now.
    A major refactoring of code should be done to enable
    referential equivalence for termrepr, by changing the dependency
    between the Isa_DOF theory and the Assert theory.
    The assert_cmd function in Assert should use the value* command
    functions, which make the elaboration of the term
    referenced by the TA before passing it to the evaluator
- Update the Evaluation test theory to test the referential equivalence
  and expose some of  current implementation limitations
- Add a warning about the docitem TA in the TermAntiquotations theory
2021-11-09 08:55:02 +01:00
Nicolas Méric 6ac1445147 Change the implementation of the tag attribute
The philosophy is for the tag attribute to be unique
for each class.
So this commit updates the implementation of this attribute
to match the philosophy.
The previous implementation associated a tag attribute
with a class but also with each super-class of this class
up to the top (default) class "text".
Now a class with super-classes has only one tag attribute.
2021-11-08 10:44:29 +01:00
Nicolas Méric 664aede4c0 First draft of the value* command implementation
Add a command value*
- The value* command uses the same code as the value command
  and adds the possibility to evaluate
  Term Annotation Antiquotations (TA)
  with the help of the DOF_core.transduce_term_global function.
  The DOF_core.transduce_term_global function,
  in addition to the validation of a term
  (also called a second level type checking),
  is now able to make a so called elaboration:
  it will construct the term referenced by a TA before
  passing it to the evaluator.
- For a term to be evaluated, it must not be contain
  the "undefined" constant whose evaluation always fails.
  (See the code generation documentation).
  Furthermore, the instance class generation is updated in such a way
  that each of its attributes is initialized with a free variable
  whose name shows to the final user that this attribute
  is not initialized.
  It implies that an instance class evaluation will be pass
  to the normalization by evaluation (nbe) evaluator by default
  if the final user does not specify a class instance entirely,
  i.e. by specifying each attribute of the instance.
  This choice is considered a decent compromise, considering
  the speed and trustworthiness of the nbe evaluator.
  (See the article
  A Compiled Implementation of Normalization by Evaluation from 2008)
- Update the ISA transformer tab to add a function
  which is used for the elaboration of the term referenced by the TA.to pass
- Add a first really basic draft of the implementation
  of the elaboration of the built-ins TA and of an instance class:
  - For the built-ins, the term referenced by the TA is returned
    as it is;
  - For an instance class, the value of the instance is returned.
- Make the tag attribute global by moving it to DOF_core structure
- Add a first draft for some evaluation tests
  and expose the limitations of the current implementation
  in Evaluation.thy
2021-11-08 10:38:11 +01:00
Burkhart Wolff c14cb31639 ... 2021-10-14 20:31:21 +02:00
Burkhart Wolff 9b08e92588 Experiments with the code generator for Isa_DOF class objects. 2021-10-08 16:00:57 +02:00
Burkhart Wolff 4420084d52 restructuring command-syntax doc_class 2021-09-29 14:21:13 +02:00
Burkhart Wolff f9027ef331 a section explaining the consequences of a doc-class and its shallow semantics in Isabelle records on different levels of representation 2021-07-18 17:34:52 +02:00
Achim D. Brucker cfbc3311cd Merge branch 'master' into class-term-antiquotation-implementation 2021-07-02 17:39:42 +02:00
Burkhart Wolff 9f9bc25618 no message 2021-07-01 16:25:31 +02:00
Burkhart Wolff 5aad659a85 some observations on invariant code generation 2021-07-01 13:12:18 +02:00
Nicolas Méric 2c01a7118b Add term* cmd and term antiquotations for classes
- Add a term antiquotation for document classes
  and add the term* command which mimics the classical term command
  and adds the possibility to use a term antiquotation
  which references document classes:
  one can use @{A ''A_instance''} to reference
  an instance of the class A in a term* command.
- Reuse and update the ML_isa_check_generic visitor pattern
  to add the function which checks the class instance of a class,
  used by the term antiquotation for document classes.
  Also, the update_isa functions now expect long name
  (See builtin term antiquotations setup)
- The merge of ISA_transformer_tab has been update to avoid conflicts.
  Indeed, the merge is ultra-critical: the transformer tabs were
  just extended by letting *the first* entry
  with the same long-name win.
  Since the range is a (call-back) function, a comparison on its content
  is impossible and some choice has to be made.
  An alternative may be to use Symtab.join
- As classes names as constants are already bound to
  "doc_class Regular_Exp.rexp" constants by add_doc_class_cmd function,
  we use a prefix "doc_class_" when adding
  document classes term antiquotations
2021-06-01 17:32:45 +02:00
Burkhart Wolff f8801a1121 basically table_inline. 2021-05-13 14:37:27 +02:00
Burkhart Wolff d7b625ae04 little debug. 2021-04-21 20:27:23 +02:00
Burkhart Wolff 3b21df199b addded docitem ML antiquotation. (Kleine Fingeruebung). 2021-04-21 20:24:06 +02:00
Achim D. Brucker 0b6ef076b0 Initial support for svjour3-class from Springer. 2021-04-06 12:15:13 +01:00
Achim D. Brucker 46875b0560 Fixed version number. 2021-03-11 00:03:37 +00:00
Achim D. Brucker 06dddeacf5 Porting to Isabelle 2021. 2021-03-10 22:04:09 +00:00
Achim D. Brucker 676b0304a8 Print abstract title/name and removed table of contents. 2021-01-14 05:24:10 +00:00
Achim D. Brucker c03b54584c Fixed package name. 2021-01-13 12:12:18 +00:00
Achim D. Brucker 1c57e9b08b Fixed package name. 2021-01-12 23:46:47 +00:00
Achim D. Brucker be09cb7d89 Fixed file permissions. 2021-01-10 06:56:28 +00:00
Achim D. Brucker 88504abf33 Added wrapper for amssymb to support amssymb-like commands for both pdflatex and luatex. 2021-01-10 06:56:05 +00:00
Burkhart Wolff d86e708154 a first imprfect solution for the assert* problem; 4th chapter roughly completed. 2021-01-03 14:07:21 +01:00
Burkhart Wolff aee1d33709 renaming ISA's; new shortcuts; more content in the RefMan. 2021-01-02 15:57:28 +01:00
Burkhart Wolff 396ef1d477 More content in 4, better tree printing. 2021-01-01 21:23:21 +01:00
Burkhart Wolff 242bb536bc Reorganization Chap 4. <4.3.2 2020-12-30 23:07:19 +01:00
Burkhart Wolff 04f0cc7f5c Reorganization: Pushed Macro Core Mechanism into the DOF Core; adapted the RefMan accordingly. 2020-12-30 12:47:54 +01:00
Burkhart Wolff 4c5aacb39f activated syntactic checks for trimming macros 2020-12-23 11:30:42 +01:00
Burkhart Wolff 4c5fc4bc53 built in syntactic checks for trimming macros 2020-12-23 09:43:22 +01:00
Burkhart Wolff 005922ffda built in syntactic checks for trimming macros 2020-12-23 09:41:26 +01:00
Burkhart Wolff 6899c4059e improved macro syntax 2020-12-22 20:37:15 +01:00
Burkhart Wolff 5593c22a36 first version with macro syntax (no ML support) 2020-12-22 19:50:00 +01:00