@@ -17,8 +17,7 @@ Require Import serializablecommfingroup.
17
17
Require Import TreeAggregationDynamic.
18
18
19
19
Require Import Cheerios.Cheerios.
20
-
21
- Require Import VerdiCheerios.SerializedParams.
20
+ Require Import VerdiCheerios.SerializedMsgParams.
22
21
23
22
Import DeserializerNotations.
24
23
@@ -47,25 +46,26 @@ Import TANS.
47
46
48
47
Import fingroup.GroupScope.
49
48
50
- Definition option_lv_serialize (lvo : option lv) : list bool :=
49
+ (*
50
+ Definition option_lv_serialize (lvo : option lv) :=
51
51
match lvo with
52
- | None => [false]
53
- | Some lv => [true] ++ serialize lv
52
+ | None => serialize x00
53
+ | Some lv => Serializer.append (serialize x01) ( serialize lv)
54
54
end.
55
55
56
- Definition option_lv_deserialize : deserializer (option lv) :=
56
+ Definition option_lv_deserialize : Deserializer.t (option lv) :=
57
57
tag <- deserialize ;;
58
58
match tag with
59
- | false => ret None
60
- | true => Some <$> deserialize
59
+ | x00 => Deserializer.ret None
60
+ | x01 => Some <$> deserialize
61
+ | _ => Deserializer.error
61
62
end.
62
63
63
64
Lemma option_lv_serialize_deserialize_id :
64
65
serialize_deserialize_id_spec option_lv_serialize option_lv_deserialize.
65
66
Proof.
66
67
rewrite /option_lv_serialize /option_lv_deserialize.
67
- case; serialize_deserialize_id_crush.
68
- by rewrite /= nat_serialize_deserialize_id.
68
+ case; repeat (cheerios_crush; simpl).
69
69
Qed.
70
70
71
71
Instance option_lv_Serialize : Serializer (option lv) :=
@@ -74,42 +74,38 @@ Instance option_lv_Serialize : Serializer (option lv) :=
74
74
deserialize := option_lv_deserialize ;
75
75
serialize_deserialize_id := option_lv_serialize_deserialize_id
76
76
}.
77
+ *)
77
78
78
- Definition Msg_serialize (msg: Msg) : list bool : =
79
+ Definition Msg_serialize (msg: Msg) :=
79
80
match msg with
80
81
| Aggregate m =>
81
- [false; false] ++ serialize m
82
- | Fail =>
83
- [false; true]
82
+ IOStreamWriter.append (fun _ => serialize x00) (fun _ => serialize m)
83
+ | Fail => serialize x01
84
84
| Level lvo =>
85
- [true; false] ++ serialize lvo
86
- | New =>
87
- [true; true]
85
+ IOStreamWriter.append (fun _ => serialize x02) (fun _ => serialize lvo)
86
+ | New => serialize x03
88
87
end .
89
88
90
- Definition Msg_deserialize : deserializer Msg :=
91
- tag1 <- deserialize ;;
92
- tag2 <- deserialize ;;
93
- match tag1, tag2 with
94
- | false, false =>
89
+ Definition Msg_deserialize : ByteListReader.t Msg :=
90
+ tag <- deserialize ;;
91
+ match tag with
92
+ | x00 =>
95
93
m <- deserialize ;;
96
- ret (Aggregate m)
97
- | false, true =>
98
- ret Fail
99
- | true, false =>
94
+ ByteListReader.ret (Aggregate m)
95
+ | x01 => ByteListReader.ret Fail
96
+ | x02 =>
100
97
lvo <- deserialize ;;
101
- ret (Level lvo)
102
- | true, true =>
103
- ret New
98
+ ByteListReader. ret (Level lvo)
99
+ | x03 => ByteListReader.ret New
100
+ | _ => ByteListReader.error
104
101
end .
105
102
106
103
Lemma Msg_serialize_deserialize_id :
107
104
serialize_deserialize_id_spec Msg_serialize Msg_deserialize.
108
105
Proof .
109
106
rewrite /Msg_serialize /Msg_deserialize.
110
- case; serialize_deserialize_id_crush.
111
- - by rewrite /= serializeg_deserializeg_id.
112
- - by rewrite /= option_lv_serialize_deserialize_id.
107
+ case; repeat (cheerios_crush; simpl).
108
+ by rewrite serializeg_deserializeg_id; cheerios_crush.
113
109
Qed .
114
110
115
111
Instance Msg_Serializer : Serializer Msg :=
@@ -119,95 +115,6 @@ Instance Msg_Serializer : Serializer Msg :=
119
115
serialize_deserialize_id := Msg_serialize_deserialize_id
120
116
}.
121
117
122
- Definition Input_serialize (inp : Input) : list bool :=
123
- match inp with
124
- | Local m =>
125
- [false; false; false] ++ serialize m
126
- | SendAggregate =>
127
- [false; false; true]
128
- | AggregateRequest s =>
129
- [false; true; false] ++ serialize s
130
- | LevelRequest s =>
131
- [false; true; true] ++ serialize s
132
- | Broadcast =>
133
- [true; false; false]
134
- end .
135
-
136
- Definition Input_deserialize : deserializer Input :=
137
- tag1 <- deserialize ;;
138
- tag2 <- deserialize ;;
139
- tag3 <- deserialize ;;
140
- match tag1, tag2, tag3 with
141
- | false, false, false =>
142
- m <- deserialize ;;
143
- ret (Local m)
144
- | false, false, true =>
145
- ret SendAggregate
146
- | false, true, false =>
147
- s <- deserialize ;;
148
- ret (AggregateRequest s)
149
- | false, true, true =>
150
- s <- deserialize ;;
151
- ret (LevelRequest s)
152
- | true, false, false =>
153
- ret Broadcast
154
- | _, _, _ => fail
155
- end .
156
-
157
- Lemma Input_serialize_deserialize_id :
158
- serialize_deserialize_id_spec Input_serialize Input_deserialize.
159
- Proof .
160
- rewrite /Input_serialize /Input_deserialize.
161
- case; serialize_deserialize_id_crush.
162
- - by rewrite /= serializeg_deserializeg_id.
163
- - by rewrite /= string_serialize_deserialize_id.
164
- - by rewrite /= string_serialize_deserialize_id.
165
- Qed .
166
-
167
- Instance Input_Serializer : Serializer Input :=
168
- {
169
- serialize := Input_serialize ;
170
- deserialize := Input_deserialize ;
171
- serialize_deserialize_id := Input_serialize_deserialize_id
172
- }.
173
-
174
- Definition Output_serialize (out : Output) : list bool :=
175
- match out with
176
- | AggregateResponse s m =>
177
- [false] ++ serialize s ++ serialize m
178
- | LevelResponse s lvo =>
179
- [true] ++ serialize s ++ serialize lvo
180
- end .
181
-
182
- Definition Output_deserialize : deserializer Output :=
183
- tag <- deserialize ;;
184
- match tag with
185
- | false =>
186
- s <- deserialize ;;
187
- m <- deserialize ;;
188
- ret (AggregateResponse s m)
189
- | true =>
190
- s <- deserialize ;;
191
- lvo <- deserialize ;;
192
- ret (LevelResponse s lvo)
193
- end .
194
-
195
- Lemma Output_serialize_deserialize_id :
196
- serialize_deserialize_id_spec Output_serialize Output_deserialize.
197
- Proof .
198
- rewrite /Output_serialize /Output_deserialize.
199
- case; serialize_deserialize_id_crush.
200
- - by rewrite /= string_serialize_deserialize_id serializeg_deserializeg_id.
201
- - by rewrite /= string_serialize_deserialize_id option_lv_serialize_deserialize_id.
202
- Qed .
203
-
204
- Instance Output_Serializer : Serializer Output :=
205
- {
206
- serialize := Output_serialize ;
207
- deserialize := Output_deserialize ;
208
- serialize_deserialize_id := Output_serialize_deserialize_id
209
- }.
210
-
211
118
Definition TreeAggregation_SerializedBaseParams :=
212
119
serialized_base_params.
213
120
0 commit comments