This repository was archived by the owner on Nov 12, 2025. It is now read-only.
File tree Expand file tree Collapse file tree
libs/contrib/Control/Algebra Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -143,6 +143,20 @@ cancelRight x y z p =
143143 rewrite groupInverseIsInverseL x in
144144 monoidNeutralIsNeutralL z
145145
146+ ||| ab = 0 -> a = b^-1
147+ neutralProductInverseR : VerifiedGroup ty => (a, b : ty) ->
148+ a <+> b = A.neutral -> a = inverse b
149+ neutralProductInverseR a b prf =
150+ cancelRight b a (inverse b) $
151+ trans prf $ sym $ groupInverseIsInverseR b
152+
153+ ||| ab = 0 -> a^-1 = b
154+ neutralProductInverseL : VerifiedGroup ty => (a, b : ty) ->
155+ a <+> b = A.neutral -> inverse a = b
156+ neutralProductInverseL a b prf =
157+ cancelLeft a (inverse a) b $
158+ trans (groupInverseIsInverseL a) $ sym prf
159+
146160||| For any a and b, ax = b and ya = b have solutions.
147161latinSquareProperty : VerifiedGroup t => (a, b : t) ->
148162 ((x : t ** a <+> x = b),
You can’t perform that action at this time.
0 commit comments