[Agda] 'finitely supported' constructively and without decidable equality

Jacques Carette carette at mcmaster.ca
Tue Jan 10 18:13:28 CET 2017


On 2017-01-10 10:20 AM, Nils Anders Danielsson wrote:

> On 2016-12-30 16:02, Jacques Carette wrote:
>> I have used
>>     B : Pred A o
>>     finite : Σ ℕ (λ n → (Σ A B ↣ Fin n))
>>
>> to define a "finitely supported subset of A" which 'works', but is
>> extremely awkward to work with.
>
> Is A an h-set, and is B h-propositional?

I am doing this in MLTT rather than HoTT, so I don't have an explicit 
h-level for A.  One question is whether I need to restrict A somehow -- 
such as being an h-set.  B is just my way of trying to encode 'finitely 
supported' and is not essential to my actual situation.

The context is that I am to build, in Agda, various free objects. For 
example, one can show (using the categories package) that List, as a 
Functor, is left adjoint to the forgetful functor from Monoid to Sets.  
No additional assumptions are needed.  On the other hand, the left 
adjoint to the forgetful functor from *Commutative* Monoid to Sets is 
*finitely supported* Multisets (rather than just Multisets).

My real aim is to find a good representation to this left adjoint 
functor.  As far as I can tell, unlike for Monoid, this does not work 
for an arbitrary type A.  Basically because one can induce an 
equivalence relation on A from the Multiset structure.  Also, the 
required 'singleton' constructor (part of the adjunction data) is 
challenging (impossible?) to build without some additional structure on A.

Jacques


More information about the Agda mailing list