comparison cbc/subtype.agda @ 71:614997a2e21c

Define goto
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Wed, 01 Feb 2017 05:05:27 +0000
parents bd428bd6b394
children f1ab418bc37f
comparison
equal deleted inserted replaced
70:a6e25e25307a 71:614997a2e21c
11 open DataSegment 11 open DataSegment
12 12
13 data CodeSegment {l1 l2 : Level} (A : Set l1) (B : Set l2) : Set (l ⊔ l1 ⊔ l2) where 13 data CodeSegment {l1 l2 : Level} (A : Set l1) (B : Set l2) : Set (l ⊔ l1 ⊔ l2) where
14 cs : {{_ : DataSegment A}} {{_ : DataSegment B}} -> (A -> B) -> CodeSegment A B 14 cs : {{_ : DataSegment A}} {{_ : DataSegment B}} -> (A -> B) -> CodeSegment A B
15 15
16 goto : {l1 l2 : Level} {I : Set l1} {O : Set l2} {{_ : DataSegment I}} {{_ : DataSegment O}}
17 -> CodeSegment I O -> I -> O
18 goto (cs b) i = b i
16 19
17 exec : {l1 l2 : Level} {I : Set l1} {O : Set l2} {{_ : DataSegment I}} {{_ : DataSegment O}} 20 exec : {l1 l2 : Level} {I : Set l1} {O : Set l2} {{_ : DataSegment I}} {{_ : DataSegment O}}
18 -> CodeSegment I O -> Context -> Context 21 -> CodeSegment I O -> Context -> Context
19 exec {l} {{i}} {{o}} (cs b) c = set o c (b (get i c)) 22 exec {l} {{i}} {{o}} (cs b) c = set o c (b (get i c))
20 23