Currently, we have a "relation" package which defines the TransitiveRelation Operation and related things. But "order theory" is a proper "thing" in its own right, abstracted from any specific type of ordering, so we should probably have an "ordering" theory package and move everything from "relation" to there (and delete "relations" which is obsolete).
While we are at it, another idea is to use "style" for total ordering notation (e.g., "a < b <= c") rather than creating special Operation classes for such things. Currently we have LesserSequence and GreaterSequence. It would make things a lot easier if we made this a style option for specific conjunctions. We would need to check that the conjunction satisfies some total ordering criteria in its structure -- e.g., they are consecutive relations where the relations all belong to some compatible set like {<, <=, =} or {>, >=, =} or {subset, subseteq, set_equiv, =}. This would save a lot of work and is fairly natural (though somewhat debatable).
Currently, we have a "relation" package which defines the TransitiveRelation Operation and related things. But "order theory" is a proper "thing" in its own right, abstracted from any specific type of ordering, so we should probably have an "ordering" theory package and move everything from "relation" to there (and delete "relations" which is obsolete).
While we are at it, another idea is to use "style" for total ordering notation (e.g., "a < b <= c") rather than creating special Operation classes for such things. Currently we have LesserSequence and GreaterSequence. It would make things a lot easier if we made this a style option for specific conjunctions. We would need to check that the conjunction satisfies some total ordering criteria in its structure -- e.g., they are consecutive relations where the relations all belong to some compatible set like {<, <=, =} or {>, >=, =} or {subset, subseteq, set_equiv, =}. This would save a lot of work and is fairly natural (though somewhat debatable).