@@ -918,6 +918,46 @@ Non-backwards compatible changes
918
918
919
919
* The old names (and the names of all proofs about these functions) have been deprecated appropriately.
920
920
921
+ ### Changes to definition of ` IsStrictTotalOrder `
922
+
923
+ * The previous definition of the record ` IsStrictTotalOrder ` did not build upon ` IsStrictPartialOrder `
924
+ as would be expected. Instead it omitted several fields like irreflexivity as they were derivable from the
925
+ proof of trichotomy. However, this led to problems further up the hierarchy where bundles such as ` StrictTotalOrder `
926
+ which contained multiple distinct proofs of ` IsStrictPartialOrder ` .
927
+
928
+ * To remedy this the definition of ` IsStrictTotalOrder ` has been changed to so that it builds upon
929
+ ` IsStrictPartialOrder ` as would be expected.
930
+
931
+ * To aid migration, the old record definition has been moved to ` Relation.Binary.Structures.Biased `
932
+ which contains the ` isStrictTotalOrderᶜ ` smart constructor (which is re-exported by ` Relation.Binary ` ) .
933
+ Therefore the old code:
934
+ ``` agda
935
+ <-isStrictTotalOrder : IsStrictTotalOrder _≡_ _<_
936
+ <-isStrictTotalOrder = record
937
+ { isEquivalence = isEquivalence
938
+ ; trans = <-trans
939
+ ; compare = <-cmp
940
+ }
941
+ ```
942
+ can be migrated either by updating to the new record fields if you have a proof of ` IsStrictPartialOrder `
943
+ available:
944
+ ``` agda
945
+ <-isStrictTotalOrder : IsStrictTotalOrder _≡_ _<_
946
+ <-isStrictTotalOrder = record
947
+ { isStrictPartialOrder = <-isStrictPartialOrder
948
+ ; compare = <-cmp
949
+ }
950
+ ```
951
+ or simply applying the smart constructor to the record definition as follows:
952
+ ``` agda
953
+ <-isStrictTotalOrder : IsStrictTotalOrder _≡_ _<_
954
+ <-isStrictTotalOrder = isStrictTotalOrderᶜ record
955
+ { isEquivalence = isEquivalence
956
+ ; trans = <-trans
957
+ ; compare = <-cmp
958
+ }
959
+ ```
960
+
921
961
### Changes to triple reasoning interface
922
962
923
963
* The module ` Relation.Binary.Reasoning.Base.Triple ` now takes an extra proof that the strict
0 commit comments