[Agda] `using (DecTotalOrder)'

Serge D. Mechveliani mechvel at botik.ru
Tue Oct 9 13:31:30 CEST 2012


On Tue, Oct 09, 2012 at 11:46:12AM +0200, Dominique Devriese wrote:
> 2012/10/9 Serge D. Mechveliani <mechvel at botik.ru>:
[..]
> > Question 2:
> > how to omit here the argument  ord  in  ``_<=_ ord x y''  ?
> > For it is said that  dep.records + hidden agruments  stands for type
> > classes.
> 
> Please refer to the following part of the manual on the wiki:
> 
>   http://wiki.portal.chalmers.se/agda/pmwiki.php?n=ReferenceManual.ModellingTypeClassesWithInstanceArguments



First, I write

----------------------------------------------------------
open import Level ...
open import Relation.Nullary using ( Dec; yes; no )
open import Relation.Binary  using ( DecTotalOrder; module DecTotalOrder )
...
open DecTotalOrder  -- **
data OrderedList? {c l1 l2 : Level} (ord : DecTotalOrder c l1 l2) :
                  List $ Carrier ord -> Set $ L-suc $ max c $ max l1 l2
  where
  ...
  cons : let A = Carrier ord
         in
         (x y : A) -> (xs : List A) -> 
         _<=_ ord x y ->               -- **
         OrderedList? ord (y :: xs) -> OrderedList? ord (x :: y :: xs)
------------------------------------------------------------------------

(I rename for this letter  \<=  to  <= ). 
And it works.
Then I need to replace   _<=_ ord x y   with   x <= y.
I write

  open DecTotalOrder {{...}}  -- **
  data OrderedList? {c l1 l2 : Level} (ord : DecTotalOrder c l1 l2) :
                  List $ Carrier ord -> Set $ L-suc $ max c $ max l1 l2
    where
    ...
    cons : let A = Carrier ord
           in
           (x y : A) -> (xs : List A) -> x <= y ->   -- **
           OrderedList? ord (y :: xs) -> OrderedList? ord (x :: y :: xs)

And the type checker report is

  Panic:  Unbound name:  OrdList.OrderedList? [0,57]@197591509
  when checking that  ord  are valid arguments to a function of type
  ({{ : DecTotalOrder (_55 ord) (_56 ord) (_57 ord)}} Б├▓
   Set (_55 ord))
 
Probably I am missing something.
On the other hand, `panic' is discovered.

Thanks,
Sergei


More information about the Agda mailing list