<div dir="ltr"><div><div><div>I uploaded my code to see the actual function.<br><a href="https://github.com/xekoukou/sparrow/blob/750bcebeb488c52f1b95083e8cff79f5032125a1/agda/IndexLLProp.agda#L178"><br>https://github.com/xekoukou/sparrow/blob/750bcebeb488c52f1b95083e8cff79f5032125a1/agda/IndexLLProp.agda#L178</a><br><br></div>The proofs I use in 'subst2' are here:<br><br><a href="https://github.com/xekoukou/sparrow/blob/750bcebeb488c52f1b95083e8cff79f5032125a1/agda/IndexLLProp.agda#L154">https://github.com/xekoukou/sparrow/blob/750bcebeb488c52f1b95083e8cff79f5032125a1/agda/IndexLLProp.agda#L154</a><br><br><a href="https://github.com/xekoukou/sparrow/blob/750bcebeb488c52f1b95083e8cff79f5032125a1/agda/LinLogic.agda#L135">https://github.com/xekoukou/sparrow/blob/750bcebeb488c52f1b95083e8cff79f5032125a1/agda/LinLogic.agda#L135</a><br><br></div>Andrea, <br></div>  I tried to use heterogeneous equality. I will give it one more try.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 3, 2017 at 3:12 PM, Andrea Vezzosi <span dir="ltr"><<a href="mailto:sanzhiyan@gmail.com" target="_blank">sanzhiyan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It might make sense to state and prove f with heterogeneous equality<br>
instead, it's possibly a weaker statement, but you won't have subst in<br>
the type then.<br>
<br>
<br>
<br>
On Wed, May 3, 2017 at 10:58 AM, Apostolis Xekoukoulotakis<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:apostolis.xekoukoulotakis@gmail.com">apostolis.xekoukoulotakis@<wbr>gmail.com</a>> wrote:<br>
> I tried 'with (big_expression a) | (eq a)' . It does not work because of the<br>
> h function.<br>
><br>
> It says that the result is not well typed.<br>
><br>
> From what I understand, we cannot abstract (eq a) without abstracting the h<br>
> function, but I need the h function to do the proof.<br>
><br>
><br>
><br>
> On Wed, May 3, 2017 at 11:51 AM, Jesper Cockx <<a href="mailto:Jesper@sikanda.be">Jesper@sikanda.be</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> Did you already try to use `with (eq a)` and then match with refl? I think<br>
>> that should do the trick.<br>
>><br>
>> Otherwise, the brute-force way to get rid of annoying equality proofs in<br>
>> your types is by using the J eliminator. But the result is usually not very<br>
>> pretty...<br>
>><br>
>> -- Jesper<br>
>><br>
>> On Wed, May 3, 2017 at 9:24 AM, Apostolis Xekoukoulotakis<br>
>> <<a href="mailto:apostolis.xekoukoulotakis@gmail.com">apostolis.xekoukoulotakis@<wbr>gmail.com</a>> wrote:<br>
>>><br>
>>> Hello,<br>
>>><br>
>>> I have something like this :<br>
>>><br>
>>> ```<br>
>>> postulate<br>
>>>   B : Set<br>
>>>   A : B → Set<br>
>>>   big_expression : {b : B} → (a : A b) → B<br>
>>>   h : {b : B} → (a : A b) → A (big_expression a)<br>
>>>   eq : {b : B} → (a : A b) → (big_expression a) ≡ b<br>
>>><br>
>>> f : {b : B} → (a : A b) → subst A (eq a) (h a) ≡ a<br>
>>> f = {!!}<br>
>>><br>
>>> ```<br>
>>><br>
>>> h is defined inductively, thus it would be very easy to prove this if I<br>
>>> did not have subst in the equality.<br>
>>><br>
>>> Any advice on how to proceed?<br>
>>><br>
>>> I can't find a way to remove subst.<br>
>>><br>
>>> ______________________________<wbr>_________________<br>
>>> Agda mailing list<br>
>>> <a href="mailto:Agda@lists.chalmers.se">Agda@lists.chalmers.se</a><br>
>>> <a href="https://lists.chalmers.se/mailman/listinfo/agda" rel="noreferrer" target="_blank">https://lists.chalmers.se/<wbr>mailman/listinfo/agda</a><br>
>>><br>
>><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> Agda mailing list<br>
> <a href="mailto:Agda@lists.chalmers.se">Agda@lists.chalmers.se</a><br>
> <a href="https://lists.chalmers.se/mailman/listinfo/agda" rel="noreferrer" target="_blank">https://lists.chalmers.se/<wbr>mailman/listinfo/agda</a><br>
><br>
</div></div></blockquote></div><br></div>