Set Theory 0.30.c

by rosivaldo (modified: 2018 Nov 10)

Set Theory 0.30.c

Rosivaldo Fernandes Alves

rosivaldo.fa@gmail.com

November 10, 2018

Overview

This software project, called set_theory, aims to provide the Eiffel (programming language) Community with a rich and expressive library of classes modeled upon the concepts of set theory. In order to get details about motivations, design decisions and a sketch of road-map, please see https://www.eiffel.org/blog/rosivaldo/2017/09/set-theory.

In the current state (https://launchpad.net/set-theory/+milestone/0.30.a), this project deviates significantly from the one firstly released at https://launchpad.net/set-theory/trunk. Instead of rendering here a lengthy justification for the adopted changes, I prefer to answer any question on that or any other aspect of the project via e-mail (rosivaldo.fa@gmail.com) or at https://answers.launchpad.net/set-theory/+addquestion.

Release notes

0.30.c:

  • Some agent-oriented features were added to classes that model sets and n-tuples; all of such features were specified, implemented and tested.
  • Overall refactoring has heavily reorganized the cluster hierarchy, in order to ease visual (i.e. via diagrams) documenting.
  • Documentation:
    • Though the automatic HTML documentation has been updated (file://$(system_path)/doc/html/index.html), it includes no diagram, which could not be rendered due to the same bug in EiffelStudio already mentioned on release 0.30.a.

0.30.b:

  • Implementation-specific features of sti_sets cluster were put under tests, uncovering several errors unseen when testing only specification features.

0.30.a:

  • General refactoring removed redundant code, saving some 1910 lines of code.
  • Documentation:
    • due too a bug (not yet understood) in EiffelStudio’s documentation generator, the system HTML documentation (file://$(system_path)/doc/html/index.html) was not updated to reflect the current state of the system; inside EiffelStudio, however, clusters’ diagrams were updated properly.

0.30:

  • Implemented features: "sets" clusters, which consist of
    • sts_sets cluster: minimal specification of core concepts in set theory;
    • stp_sets_properties cluster: extended specification of core concepts in set theory;
    • sti_sets cluster: implementation of core concepts in set theory, grounded on previous clusters;
    • stt_sets_tests cluster: test suites for the implementation in sti_sets.
  • Pending features:
    • numbers-related clusters: numeric sets, i.e. N, Z, R and C, specified, implemented and tested according to all previous clusters.

Major releases ahead

Once the current release is consolidated, I will add to the project the clusters “relations”, “functions” and “operations”.