annotate cbc/maybe-subtype.agda @ 59:352e8a724829

Trying define maybe-subtype......
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Thu, 12 Jan 2017 02:48:09 +0000
parents 75f9f71f364a
children bd428bd6b394
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
57
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 module maybe-subtype (A : Set) where
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 open import Level
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 open import Function using (id)
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 open import Relation.Binary.PropositionalEquality
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 data Maybe (A : Set) : Set where
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 nothing : Maybe A
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 just : A -> Maybe A
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 record Context (A : Set) : Set where
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 field
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 maybeElem : Maybe A
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 open import subtype (Context A) as N
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 record Meta (A : Set) : Set where
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 field
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 context : Context A
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 open import subtype (Meta A) as M
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 instance
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 MetaIsMetaDataSegment : M.DataSegment (Meta A)
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 MetaIsMetaDataSegment = record {get = (\mc -> mc) ; set = (\_ mc -> mc)}
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 ContextIsMetaDataSegment : M.DataSegment (Context A)
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 ContextIsMetaDataSegment = record {get = Meta.context ; set = (\mc c -> record mc {context = c})}
75f9f71f364a Trying define maybe-subtype
atton <atton@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31