[Agda] problem with `abstract'

Andreas Abel abela at chalmers.se
Sat Jul 16 23:55:55 CEST 2016


Sorry, I cannot see off-hand where the problem is.  Please provide some 
self-contained test (does not have to be minimal for now).

-- Andreas

On 15.07.2016 21:35, Sergei Meshveliani wrote:
> Dear Agda developers,
>
> the following usage of `abstract' is not type-checked in
> Agada 2.5.1.1 + ghc-7.10.2 :
>
> -----------------------------------------------------------------------
> open import Relation.Binary using () renaming (Decidable to Decidable₂)
> open import Data.Product    using (_×_; proj₂)
> open import Data.List       using (List; map)
> open import Data.List.All   using (All)
> open import Data.Nat as Nat using (ℕ; _<_)
>
> -- of appliaction --
> open import Structures0 using (Magma)
> open import Structures3 using (UpIntegralRing)
> open import Structures7 using (module OverIntegralRing-3)
>
> abstract
>   f : ∀ {α α=} →
>       (upIR : UpIntegralRing α α=) →
>       (open UpIntegralRing upIR using (Carrier; 1#; *magma))
>       (_∣?_ : Decidable₂ (Magma._∣_ *magma)) →
>       (open OverIntegralRing-3 upIR _∣?_ using (Factorization))
>
>       (a : Carrier) → Factorization a → Carrier
>
>   f {α} {_} upIR _∣?_ a ft =  g (ftPairs ft) (exps>0 ft)
>     where
>     open UpIntegralRing     upIR      using (Carrier; 1#)
>     open OverIntegralRing-3 upIR _∣?_ using (Factorization)
>     open Factorization                using (ftPairs; exps>0)
>
>     Pair : Set α
>     Pair = Carrier × ℕ
>
>     g :  (pairs : List Pair) → All (_<_ 0) (map proj₂ pairs) → Carrier
>     g _ _ =  1#
> ----------------------------------------------------------------------
>
> The report is
>
> ------------------
> /home/mechvel/agda/tosave/bugs/july15-2016/Last.agda:31,54-59
> Pair !=<
> (Data.Product.Σ (_A_39 upIR _∣?_ a ft pairs)
>   (λ _ → _B_36 upIR _∣?_ a ft pairs))
> of type (Set α)
> when checking that the expression pairs has type
> List (Data.Product.Σ (_A_39 upIR _∣?_ a ft pairs)
>   (λ _ → _B_36 upIR _∣?_ a ft pairs))
> -------------------
>
>
> * With `abstract' removed, it is type-checked.
> * With "List Pair"  replaced with  "List (Carrier × ℕ)",
>    it is type-checked.
> * With removing the second argument from the signature of  g,
>    it is type-checked.
>
> Is this a bug?
> Do I need to provide a self-contained code
> (reduction needs a certain effort),
> or may be, you already guess what is the matter?
>
> Regards,
>
> ------
> Sergei
>
>
>
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>


-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Agda mailing list