Skip to content

Consequences as consequences for properties, or consequences for structured sets? #455

@HuStmpHrrr

Description

@HuStmpHrrr

I find that there is a duplication between *.Consequences and *.Properties for structured sets, mainly including algebraic and order theories. I find the line between the consequences from functional properties and ones from structured sets is very blurred.

Consider, for example, https://github.com/agda/agda-stdlib/blame/master/src/Algebra/FunctionProperties/Consequences.agda#L103

assoc+id+invʳ⇒invˡ-unique :  {_•_ _⁻¹ ε} 
                           Congruent₂ _•_  Associative _•_ 
                           Identity ε _•_  RightInverse ε _⁻¹ _•_ 
                            x y  (x • y) ≈ ε  x ≈ (y ⁻¹)

This law effectively unpacks monoid into a bunch of antecedents, plus a right inverse. Shouldn't it be something like

monoid+invʳ⇒invˡ-unique :  {_•_ _⁻¹ ε}  IsMonoid _•_ ε  RightInverse ε _⁻¹ _•_ 
                            x y  (x • y) ≈ ε  x ≈ (y ⁻¹)

?

Then it's very clear by reading it as what if a monoid possesses some other things, what happens. I sometimes find claiming laws like this in *.Consequences is an overkill. Any thoughts on drawing a line?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions