[Agda] problem with `abstract'

Sergei Meshveliani mechvel at botik.ru
Sun Jul 17 10:58:30 CEST 2016


On Sat, 2016-07-16 at 23:55 +0200, Andreas Abel wrote:
> 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


Meanwhile, can you tell about this signature?
I skip  `→'  after  (open OverIntegral...).
In some other situations this leads to parse error.
I doubt about using `open' this way.

------
Sergei
  

> 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
> >
> 
> 




More information about the Agda mailing list