[Agda] Overloaded constructor trouble

Peter Thiemann thiemann at informatik.uni-freiburg.de
Fri Aug 28 11:27:58 CEST 2020


Hi Thorsten,

modules are your friend, again.

module _ where
  open import Data.Nat (suc)
  inj-suc : {m n : ℕ} → suc m ≡ suc n → m ≡ n
  inj-suc = {!!} 
		
or you just open Fin for the definitions where you need it.

-Peter

PS I ran into this issue when using ==-Reasoning and ~=-Reasoning in the same module


On 28. August 2020 at 11:22:30, Thorsten Altenkirch (thorsten.altenkirch at nottingham.ac.uk) wrote:
> Ok, let’s say I want to show that suc is injective:
>  
> open import Relation.Binary.PropositionalEquality
> open import Data.Nat
>  
> inj-suc : {m n : ℕ} → suc m ≡ suc n → m ≡ n
> inj-suc = {!!}
>  
> So far so good but at some point I decide to use Fin as well.
>  
> open import Relation.Binary.PropositionalEquality
> open import Data.Nat
> open import Data.Fin
>  
> inj-suc : {m n : ℕ} → suc m ≡ suc n → m ≡ n
> inj-suc = {!!}
>  
> But now things get yellow ☹ Ok agda cannot infer which suc I want to use, even though only  
> one actually works.
>  
> This is annoying, especially if you are writing a book and are reluctant to write
>  
> inj-suc : {m n : ℕ} → _≡_ {A = ℕ} (suc m) (suc n) → m ≡ n
> inj-suc = {!!}
>  
> instead (this is ugly).
>  
> I have two questions: are there any good workarounds? And is there a way to fix it?
>  
> Cheers,
> Thorsten
>  
>  
>  
> This message and any attachment are intended solely for the addressee
> and may contain confidential information. If you have received this
> message in error, please contact the sender and delete the email and
> attachment.
>  
> Any views or opinions expressed by the author of this email do not
> necessarily reflect the views of the University of Nottingham. Email
> communications with the University of Nottingham may be monitored
> where permitted by law.
>  
>  
>  
>  
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>  



More information about the Agda mailing list