comparison cbc/variable-tuple.agda @ 19:853318ff55f9

Trying define output data segment
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Sun, 18 Dec 2016 07:59:51 +0000
parents 782a11f3eea4
children 4dd4400b48aa
comparison
equal deleted inserted replaced
18:782a11f3eea4 19:853318ff55f9
2 2
3 open import Data.Nat hiding (_<_ ; _>_) 3 open import Data.Nat hiding (_<_ ; _>_)
4 open import Data.String 4 open import Data.String
5 open import Data.List 5 open import Data.List
6 open import Data.Unit 6 open import Data.Unit
7 open import Data.Product
7 open import Function using (_∘_) 8 open import Function using (_∘_)
8 open import Relation.Binary.PropositionalEquality 9 open import Relation.Binary.PropositionalEquality
9 10
10 data Format : Set₁ where 11 data Format : Set₁ where
11 FEnd : Format 12 FEnd : Format
46 47
47 48
48 data CodeSegment : Set₁ where 49 data CodeSegment : Set₁ where
49 cs : Format -> Format -> CodeSegment 50 cs : Format -> Format -> CodeSegment
50 51
51 ods : CodeSegment -> List Set 52 csDouble : CodeSegment
52 ods (cs ids FEnd) = [] 53 csDouble = cs double double
53 ods (cs ids (FSet s f)) = s ∷ (ods (cs ids f)) 54
55 ods : CodeSegment -> Set
56 ods (cs ids FEnd) = ⊤
57 ods (cs ids (FSet s f)) = s × (ods (cs ids f))
58
59 ods-double : ods csDouble
60 ods-double = "hoge" , zero , tt
61
54 62
55 ids : {A : Set} -> CodeSegment -> Set 63 ids : {A : Set} -> CodeSegment -> Set
56 ids {A} (cs i o) = DataSegment {A} i 64 ids {A} (cs i o) = DataSegment {A} i
57 65
58 66 ids-double : {A : Set} {a : A} -> ids {A} csDouble
59 ids-double : {A : Set} {a : A} -> ids {A} (cs double double)
60 ids-double {_} {a} = \(s : String) -> \(n : ℕ) -> a 67 ids-double {_} {a} = \(s : String) -> \(n : ℕ) -> a
61 68