Property based class hierarchy of Vaucanson's Algebra module



In Vaucanson, Finite State Machines are mathematically defined by an algebraic structure module called Algebra. Considering the algebraic mathematical definitionshowever, the current design is inaccurate: some hierarchical relations are false (for example, the inheritance between semirings and monoids). Moreover, we are unable to add new algebraic structures easily.newline Therefore, in order to give Algebra more granularity in its algebraic concept definitions, it is necessary to rework its current structure by introducing a property based class hierarchy similar to the one presented in SCOOP. Using the mathematical operator and set properties to define algebraic structures, as opposed to a usual class hierarchy, we would be able to specialize algorithms more precisely thanks to structure property verifications, thus increasing Vaucanson's performance and expressiveness.