[Agda] Raw algebraic structures in the standard library

mechvel at scico.botik.ru mechvel at scico.botik.ru
Thu Aug 8 15:59:45 CEST 2019


On 2019-08-08 13:55, Matthew Daggitt wrote:
> [..]


> Sergei, yes if we made the previously proposed change then RawMagma 
> would be equivalent to Magma but the rest of the > hierarchy would 
> diverge. RawMagma would not be equivalent to Semigroup as it would lack 
> associativity, likewise
> RawMonoid would not be equivalent to Monoid. I'm afraid I don't 
> understand your second question.

I presumed that as you consider moving the _≈_ laws and the congruence 
law for _∙_ to RawMagma,
then you are probably going to bring the laws for _∙_ to RawSemigroup 
(associativity), and so on.
If not, then do you consider moving other congruence laws to the Raw 
structures?
So far, I see only ∙-cong, but there may appear others. Also what about 
the "resp" laws?
They are somewhat similar (<-resp-≈ ...).

--
SM


> On Tue, Aug 6, 2019 at 12:58 AM <mechvel at scico.botik.ru> wrote:
> 
>> On 2019-08-04 11:08, Matthew Daggitt wrote:
>>> Dear all,
>>> This is a question for anyone who uses the raw algebraic
>> structures
>>> from the standard library. Currently `RawMagma`, `RawMonoid`,
>>> `RawRing` etc. contain no axioms whatsoever. We're not entirely
>>> convinced this is the right approach as without proofs that _≈_
>> is
>>> an equivalence, and that _∙_ is congruent with respect to it
>> then it
>>> is impossible to do any reasoning at all about them. In order to
>> make
>>> them more useful we're considering changing their definitions so
>> that
>>> they include the equality axioms above.
>>> 
>>> Basically the question is does anyone have a use case for the raw
>>> structures in which the equality axioms would be problematic to
>>> provide?
>>> Best,
>>> Matthew
>>> _______________________________________________
>>> Agda mailing list
>>> Agda at lists.chalmers.se
>>> https://lists.chalmers.se/mailman/listinfo/agda
>> 
>> If you require the axioms of equivalence or/and congruence for _≈_
>> and
>> _∙_ for RawMagma,
>> then it will turn out that RawMagma is same as Magma. And further,
>> this
>> approach leads to eliminating the Raw structures
>> -- ?
>> 
>> I thought that the Raw records are introduced to represent and
>> consider
>> the signatures as not provided with any properties besides those
>> induced
>> automatically by a non-dependent type signature
>> (I never thought of this, is it true that they deal with
>> non-dependent
>> types?).
>> For example,  foo : Carrier -> Nat  automatically postulates that
>> foo
>> returns a member of Nat and not of Bool, and the type checker checks
>> 
>> this property, and dependent types are not needed for this.
>> 
>> --
>> SM



More information about the Agda mailing list