]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/assembly/string/ascii_min.ma
a) update with upstream version
[helm.git] / helm / software / matita / contribs / assembly / string / ascii_min.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* ********************************************************************** *)
16 (*                                                                        *)
17 (* Sviluppato da:                                                         *)
18 (*   Cosimo Oliboni, oliboni@cs.unibo.it                                  *)
19 (*                                                                        *)
20 (* ********************************************************************** *)
21
22 include "freescale/byte8.ma".
23
24 (* ************************** *)
25 (* DEFINIZIONE ASCII MINIMALE *)
26 (* ************************** *)
27
28 inductive ascii_min : Type ≝
29 (* numeri *)  
30   ch_0: ascii_min
31 | ch_1: ascii_min
32 | ch_2: ascii_min
33 | ch_3: ascii_min
34 | ch_4: ascii_min
35 | ch_5: ascii_min
36 | ch_6: ascii_min
37 | ch_7: ascii_min
38 | ch_8: ascii_min
39 | ch_9: ascii_min
40
41 (* simboli *)
42 | ch__: ascii_min
43
44 (* maiuscole *)
45 | ch_A: ascii_min
46 | ch_B: ascii_min
47 | ch_C: ascii_min
48 | ch_D: ascii_min
49 | ch_E: ascii_min
50 | ch_F: ascii_min
51 | ch_G: ascii_min
52 | ch_H: ascii_min
53 | ch_I: ascii_min
54 | ch_J: ascii_min
55 | ch_K: ascii_min
56 | ch_L: ascii_min
57 | ch_M: ascii_min
58 | ch_N: ascii_min
59 | ch_O: ascii_min
60 | ch_P: ascii_min
61 | ch_Q: ascii_min
62 | ch_R: ascii_min
63 | ch_S: ascii_min
64 | ch_T: ascii_min
65 | ch_U: ascii_min
66 | ch_V: ascii_min
67 | ch_W: ascii_min
68 | ch_X: ascii_min
69 | ch_Y: ascii_min
70 | ch_Z: ascii_min
71
72 (* minuscole *)
73 | ch_a: ascii_min
74 | ch_b: ascii_min
75 | ch_c: ascii_min
76 | ch_d: ascii_min
77 | ch_e: ascii_min
78 | ch_f: ascii_min
79 | ch_g: ascii_min
80 | ch_h: ascii_min
81 | ch_i: ascii_min
82 | ch_j: ascii_min
83 | ch_k: ascii_min
84 | ch_l: ascii_min
85 | ch_m: ascii_min
86 | ch_n: ascii_min
87 | ch_o: ascii_min
88 | ch_p: ascii_min
89 | ch_q: ascii_min
90 | ch_r: ascii_min
91 | ch_s: ascii_min
92 | ch_t: ascii_min
93 | ch_u: ascii_min
94 | ch_v: ascii_min
95 | ch_w: ascii_min
96 | ch_x: ascii_min
97 | ch_y: ascii_min
98 | ch_z: ascii_min.
99
100 (* ascii_min → byte8 *)
101 definition magic_of_ascii_min ≝
102 λc:ascii_min.match c with
103 (* numeri *)  
104 [ ch_0 ⇒ 〈x0,x0〉
105 | ch_1 ⇒ 〈x0,x1〉
106 | ch_2 ⇒ 〈x0,x2〉
107 | ch_3 ⇒ 〈x0,x3〉
108 | ch_4 ⇒ 〈x0,x4〉
109 | ch_5 ⇒ 〈x0,x5〉
110 | ch_6 ⇒ 〈x0,x6〉
111 | ch_7 ⇒ 〈x0,x7〉
112 | ch_8 ⇒ 〈x0,x8〉
113 | ch_9 ⇒ 〈x0,x9〉
114
115 (* simboli *)
116 | ch__ ⇒ 〈x0,xA〉
117
118 (* maiuscole *)
119 | ch_A ⇒ 〈x0,xB〉
120 | ch_B ⇒ 〈x0,xC〉
121 | ch_C ⇒ 〈x0,xD〉
122 | ch_D ⇒ 〈x0,xE〉
123 | ch_E ⇒ 〈x0,xF〉
124 | ch_F ⇒ 〈x1,x0〉
125 | ch_G ⇒ 〈x1,x1〉
126 | ch_H ⇒ 〈x1,x2〉
127 | ch_I ⇒ 〈x1,x3〉
128 | ch_J ⇒ 〈x1,x4〉
129 | ch_K ⇒ 〈x1,x5〉
130 | ch_L ⇒ 〈x1,x6〉
131 | ch_M ⇒ 〈x1,x7〉
132 | ch_N ⇒ 〈x1,x8〉
133 | ch_O ⇒ 〈x1,x9〉
134 | ch_P ⇒ 〈x1,xA〉
135 | ch_Q ⇒ 〈x1,xB〉
136 | ch_R ⇒ 〈x1,xC〉
137 | ch_S ⇒ 〈x1,xD〉
138 | ch_T ⇒ 〈x1,xE〉
139 | ch_U ⇒ 〈x1,xF〉
140 | ch_V ⇒ 〈x2,x0〉
141 | ch_W ⇒ 〈x2,x1〉
142 | ch_X ⇒ 〈x2,x2〉
143 | ch_Y ⇒ 〈x2,x3〉
144 | ch_Z ⇒ 〈x2,x4〉
145
146 (* minuscole *)
147 | ch_a ⇒ 〈x2,x5〉
148 | ch_b ⇒ 〈x2,x6〉
149 | ch_c ⇒ 〈x2,x7〉
150 | ch_d ⇒ 〈x2,x8〉
151 | ch_e ⇒ 〈x2,x9〉
152 | ch_f ⇒ 〈x2,xA〉
153 | ch_g ⇒ 〈x2,xB〉
154 | ch_h ⇒ 〈x2,xC〉
155 | ch_i ⇒ 〈x2,xD〉
156 | ch_j ⇒ 〈x2,xE〉
157 | ch_k ⇒ 〈x2,xF〉
158 | ch_l ⇒ 〈x3,x0〉
159 | ch_m ⇒ 〈x3,x1〉
160 | ch_n ⇒ 〈x3,x2〉
161 | ch_o ⇒ 〈x3,x3〉
162 | ch_p ⇒ 〈x3,x4〉
163 | ch_q ⇒ 〈x3,x5〉
164 | ch_r ⇒ 〈x3,x6〉
165 | ch_s ⇒ 〈x3,x7〉
166 | ch_t ⇒ 〈x3,x8〉
167 | ch_u ⇒ 〈x3,x9〉
168 | ch_v ⇒ 〈x3,xA〉
169 | ch_w ⇒ 〈x3,xB〉
170 | ch_x ⇒ 〈x3,xC〉
171 | ch_y ⇒ 〈x3,xD〉
172 | ch_z ⇒ 〈x3,xE〉
173 ].
174
175 (* confronto fra ascii_min *)
176 definition eqAsciiMin ≝
177 λc,c':ascii_min.(eq_b8 (magic_of_ascii_min c) (magic_of_ascii_min c')).