<div dir="ltr"><div dir="ltr"><div>I think this is related to the problem of subtyping / cumulativity. The reasons why we don't have it are also similar: a combination of</div><div><br></div><div>1. Lack of manpower</div><div>2. A rather large codebase which makes many implicit assumptions about the internal state, so any major change usually requires a lot of refactoring<br></div><div>3. Existing literature on these subjects often omits details crucial to the implementation, such as how it interacts with metavariables and constraint solving</div><div>4. Concerns about adding too much feature bloat to Agda, making it harder to maintain and making the move towards an eventual core language more difficult</div><div><br></div><div>That being said, having implicit coercions would certainly be very nice in many situations, so it would be great if someone would do the experiment to add them to Agda.<br></div><div><br></div><div>An interesting comment in the Agda source code (TypeChecking.Conversion):</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-family:monospace,monospace">-- | @coerce v a b@ coerces @v : a@ to type @b@, returning a @v' : b@</span><br><span style="font-family:monospace,monospace">--   with maybe extra hidden applications or hidden abstractions.</span><br><span style="font-family:monospace,monospace">--</span><br><span style="font-family:monospace,monospace">--   In principle, this function can host coercive subtyping, but</span><br><span style="font-family:monospace,monospace">--   currently it only tries to fix problems with hidden function types.</span><br></blockquote><br></div>If someone is interested in giving it a try then that'd maybe be a good place to start.</div><div dir="ltr"><br></div><div>-- Jesper<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Nov 8, 2018 at 9:16 PM Martin Escardo <<a href="mailto:m.escardo@cs.bham.ac.uk">m.escardo@cs.bham.ac.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">... and I am sure many other people do too.<br>
<br>
Many other proof assistants have them.<br>
<br>
Is there a philosophical reason for that, or is this something that just <br>
hasn't been done yet?<br>
<br>
Real-life mathematics has them in abundance, and it would be nice to <br>
reflect this in Agda.<br>
<br>
I would like to press for a design and implementation of this in Agda. :-)<br>
<br>
Best,<br>
Martin<br>
_______________________________________________<br>
Agda mailing list<br>
<a href="mailto:Agda@lists.chalmers.se" target="_blank">Agda@lists.chalmers.se</a><br>
<a href="https://lists.chalmers.se/mailman/listinfo/agda" rel="noreferrer" target="_blank">https://lists.chalmers.se/mailman/listinfo/agda</a><br>
</blockquote></div>