key icon indicating copy to clipboard operation
key copied to clipboard

Modular Features

Open Drodt opened this issue 5 months ago • 0 comments

Intended Change

Part of the modularization effort.

Splits the JavaCardDLStrategy into multiple different strategies, responsible for smaller sets of rule sets.

  • The FOLStrategy handles basic logic parts, such as propositional rules and quantifier instantiation
  • The JFOLStrategy is more tuned to JFOL, including heap and integer logic (for quantification)
  • The IntegerStrategy handles integers
  • The SymExStrategy handles symbolic execution
  • The StringFactory handles strings
  • JavaCardDLStrategy handles "the rest"

All are composed by the ModularJavaDLStrategy.

Plan

  • [x] Documentation
  • [ ] Performance tests
  • [ ] Clean up
  • [ ] More strategies?
  • [ ] Move up to ncore

Type of pull request

  • Refactoring (behaviour should not change or only minimally change)
  • New feature (non-breaking change which adds functionality)
  • There are changes to the (Java) code
  • There are changes to the taclet rule base

Ensuring quality

  • I made sure that introduced/changed code is well documented (javadoc and inline comments).
  • I made sure that new/changed end-user features are well documented (https://github.com/KeYProject/key-docs).
  • I added new test case(s) for new functionality.
  • I have tested the feature as follows: ...
  • I have checked that runtime performance has not deteriorated.
  • For new Gradle modules: I added the Gradle module to the test matrix in .github/workflows/tests.yml

Additional information and contact(s)

The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.

Drodt avatar Aug 13 '25 10:08 Drodt