]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/ng_assembly/utility/ascii_lemmas2.ma
freescale porting, work in progress
[helm.git] / helm / software / matita / contribs / ng_assembly / utility / ascii_lemmas2.ma
diff --git a/helm/software/matita/contribs/ng_assembly/utility/ascii_lemmas2.ma b/helm/software/matita/contribs/ng_assembly/utility/ascii_lemmas2.ma
new file mode 100755 (executable)
index 0000000..7001aef
--- /dev/null
@@ -0,0 +1,328 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* ********************************************************************** *)
+(*                          Progetto FreeScale                            *)
+(*                                                                        *)
+(*   Sviluppato da: Cosimo Oliboni, oliboni@cs.unibo.it                   *)
+(*     Cosimo Oliboni, oliboni@cs.unibo.it                                *)
+(*                                                                        *)
+(* ********************************************************************** *)
+
+include "utility/ascii_lemmas1.ma".
+include "freescale/bool_lemmas.ma".
+
+(* ************************** *)
+(* DEFINIZIONE ASCII MINIMALE *)
+(* ************************** *)
+
+nlemma symmetric_eqascii1 : ∀a2.eq_ascii ch_0 a2 = eq_ascii a2 ch_0. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii2 : ∀a2.eq_ascii ch_1 a2 = eq_ascii a2 ch_1. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii3 : ∀a2.eq_ascii ch_2 a2 = eq_ascii a2 ch_2. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii4 : ∀a2.eq_ascii ch_3 a2 = eq_ascii a2 ch_3. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii5 : ∀a2.eq_ascii ch_4 a2 = eq_ascii a2 ch_4. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii6 : ∀a2.eq_ascii ch_5 a2 = eq_ascii a2 ch_5. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii7 : ∀a2.eq_ascii ch_6 a2 = eq_ascii a2 ch_6. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii8 : ∀a2.eq_ascii ch_7 a2 = eq_ascii a2 ch_7. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii9 : ∀a2.eq_ascii ch_8 a2 = eq_ascii a2 ch_8. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii10 : ∀a2.eq_ascii ch_9 a2 = eq_ascii a2 ch_9. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii11 : ∀a2.eq_ascii ch__ a2 = eq_ascii a2 ch__. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii12 : ∀a2.eq_ascii ch_A a2 = eq_ascii a2 ch_A. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii13 : ∀a2.eq_ascii ch_B a2 = eq_ascii a2 ch_B. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii14 : ∀a2.eq_ascii ch_C a2 = eq_ascii a2 ch_C. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii15 : ∀a2.eq_ascii ch_D a2 = eq_ascii a2 ch_D. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii16 : ∀a2.eq_ascii ch_E a2 = eq_ascii a2 ch_E. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii17 : ∀a2.eq_ascii ch_F a2 = eq_ascii a2 ch_F. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii18 : ∀a2.eq_ascii ch_G a2 = eq_ascii a2 ch_G. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii19 : ∀a2.eq_ascii ch_H a2 = eq_ascii a2 ch_H. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii20 : ∀a2.eq_ascii ch_I a2 = eq_ascii a2 ch_I. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii21 : ∀a2.eq_ascii ch_J a2 = eq_ascii a2 ch_J. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii22 : ∀a2.eq_ascii ch_K a2 = eq_ascii a2 ch_K. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii23 : ∀a2.eq_ascii ch_L a2 = eq_ascii a2 ch_L. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii24 : ∀a2.eq_ascii ch_M a2 = eq_ascii a2 ch_M. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii25 : ∀a2.eq_ascii ch_N a2 = eq_ascii a2 ch_N. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii26 : ∀a2.eq_ascii ch_O a2 = eq_ascii a2 ch_O. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii27 : ∀a2.eq_ascii ch_P a2 = eq_ascii a2 ch_P. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii28 : ∀a2.eq_ascii ch_Q a2 = eq_ascii a2 ch_Q. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii29 : ∀a2.eq_ascii ch_R a2 = eq_ascii a2 ch_R. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii30 : ∀a2.eq_ascii ch_S a2 = eq_ascii a2 ch_S. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii31 : ∀a2.eq_ascii ch_T a2 = eq_ascii a2 ch_T. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii32 : ∀a2.eq_ascii ch_U a2 = eq_ascii a2 ch_U. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii33 : ∀a2.eq_ascii ch_V a2 = eq_ascii a2 ch_V. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii34 : ∀a2.eq_ascii ch_W a2 = eq_ascii a2 ch_W. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii35 : ∀a2.eq_ascii ch_X a2 = eq_ascii a2 ch_X. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii36 : ∀a2.eq_ascii ch_Y a2 = eq_ascii a2 ch_Y. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii37 : ∀a2.eq_ascii ch_Z a2 = eq_ascii a2 ch_Z. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii38 : ∀a2.eq_ascii ch_a a2 = eq_ascii a2 ch_a. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii39 : ∀a2.eq_ascii ch_b a2 = eq_ascii a2 ch_b. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii40 : ∀a2.eq_ascii ch_c a2 = eq_ascii a2 ch_c. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii41 : ∀a2.eq_ascii ch_d a2 = eq_ascii a2 ch_d. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii42 : ∀a2.eq_ascii ch_e a2 = eq_ascii a2 ch_e. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii43 : ∀a2.eq_ascii ch_f a2 = eq_ascii a2 ch_f. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii44 : ∀a2.eq_ascii ch_g a2 = eq_ascii a2 ch_g. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii45 : ∀a2.eq_ascii ch_h a2 = eq_ascii a2 ch_h. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii46 : ∀a2.eq_ascii ch_i a2 = eq_ascii a2 ch_i. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii47 : ∀a2.eq_ascii ch_j a2 = eq_ascii a2 ch_j. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii48 : ∀a2.eq_ascii ch_k a2 = eq_ascii a2 ch_k. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii49 : ∀a2.eq_ascii ch_l a2 = eq_ascii a2 ch_l. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii50 : ∀a2.eq_ascii ch_m a2 = eq_ascii a2 ch_m. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii51 : ∀a2.eq_ascii ch_n a2 = eq_ascii a2 ch_n. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii52 : ∀a2.eq_ascii ch_o a2 = eq_ascii a2 ch_o. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii53 : ∀a2.eq_ascii ch_p a2 = eq_ascii a2 ch_p. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii54 : ∀a2.eq_ascii ch_q a2 = eq_ascii a2 ch_q. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii55 : ∀a2.eq_ascii ch_r a2 = eq_ascii a2 ch_r. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii56 : ∀a2.eq_ascii ch_s a2 = eq_ascii a2 ch_s. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii57 : ∀a2.eq_ascii ch_t a2 = eq_ascii a2 ch_t. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii58 : ∀a2.eq_ascii ch_u a2 = eq_ascii a2 ch_u. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii59 : ∀a2.eq_ascii ch_v a2 = eq_ascii a2 ch_v. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii60 : ∀a2.eq_ascii ch_w a2 = eq_ascii a2 ch_w. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii61 : ∀a2.eq_ascii ch_x a2 = eq_ascii a2 ch_x. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii62 : ∀a2.eq_ascii ch_y a2 = eq_ascii a2 ch_y. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+nlemma symmetric_eqascii63 : ∀a2.eq_ascii ch_z a2 = eq_ascii a2 ch_z. #a2; ncases a2; nnormalize; napply (refl_eq ??).nqed.
+
+nlemma symmetric_eqascii : symmetricT ascii bool eq_ascii.
+ #a1; ncases a1;
+ ##[ ##1: napply symmetric_eqascii1 ##| ##2: napply symmetric_eqascii2
+ ##| ##3: napply symmetric_eqascii3 ##| ##4: napply symmetric_eqascii4
+ ##| ##5: napply symmetric_eqascii5 ##| ##6: napply symmetric_eqascii6
+ ##| ##7: napply symmetric_eqascii7 ##| ##8: napply symmetric_eqascii8
+ ##| ##9: napply symmetric_eqascii9 ##| ##10: napply symmetric_eqascii10
+ ##| ##11: napply symmetric_eqascii11 ##| ##12: napply symmetric_eqascii12
+ ##| ##13: napply symmetric_eqascii13 ##| ##14: napply symmetric_eqascii14
+ ##| ##15: napply symmetric_eqascii15 ##| ##16: napply symmetric_eqascii16
+ ##| ##17: napply symmetric_eqascii17 ##| ##18: napply symmetric_eqascii18
+ ##| ##19: napply symmetric_eqascii19 ##| ##20: napply symmetric_eqascii20
+ ##| ##21: napply symmetric_eqascii21 ##| ##22: napply symmetric_eqascii22
+ ##| ##23: napply symmetric_eqascii23 ##| ##24: napply symmetric_eqascii24
+ ##| ##25: napply symmetric_eqascii25 ##| ##26: napply symmetric_eqascii26
+ ##| ##27: napply symmetric_eqascii27 ##| ##28: napply symmetric_eqascii28
+ ##| ##29: napply symmetric_eqascii29 ##| ##30: napply symmetric_eqascii30
+ ##| ##31: napply symmetric_eqascii31 ##| ##32: napply symmetric_eqascii32
+ ##| ##33: napply symmetric_eqascii33 ##| ##34: napply symmetric_eqascii34
+ ##| ##35: napply symmetric_eqascii35 ##| ##36: napply symmetric_eqascii36
+ ##| ##37: napply symmetric_eqascii37 ##| ##38: napply symmetric_eqascii38
+ ##| ##39: napply symmetric_eqascii39 ##| ##40: napply symmetric_eqascii40
+ ##| ##41: napply symmetric_eqascii41 ##| ##42: napply symmetric_eqascii42
+ ##| ##43: napply symmetric_eqascii43 ##| ##44: napply symmetric_eqascii44
+ ##| ##45: napply symmetric_eqascii45 ##| ##46: napply symmetric_eqascii46
+ ##| ##47: napply symmetric_eqascii47 ##| ##48: napply symmetric_eqascii48
+ ##| ##49: napply symmetric_eqascii49 ##| ##50: napply symmetric_eqascii50
+ ##| ##51: napply symmetric_eqascii51 ##| ##52: napply symmetric_eqascii52
+ ##| ##53: napply symmetric_eqascii53 ##| ##54: napply symmetric_eqascii54
+ ##| ##55: napply symmetric_eqascii55 ##| ##56: napply symmetric_eqascii56
+ ##| ##57: napply symmetric_eqascii57 ##| ##58: napply symmetric_eqascii58
+ ##| ##59: napply symmetric_eqascii59 ##| ##60: napply symmetric_eqascii60
+ ##| ##61: napply symmetric_eqascii61 ##| ##62: napply symmetric_eqascii62
+ ##| ##63: napply symmetric_eqascii63 ##]
+nqed.
+
+nlemma eqascii_to_eq1 : ∀a2.eq_ascii ch_0 a2 = true → ch_0 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##1: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq2 : ∀a2.eq_ascii ch_1 a2 = true → ch_1 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##2: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq3 : ∀a2.eq_ascii ch_2 a2 = true → ch_2 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##3: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq4 : ∀a2.eq_ascii ch_3 a2 = true → ch_3 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##4: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq5 : ∀a2.eq_ascii ch_4 a2 = true → ch_4 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##5: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq6 : ∀a2.eq_ascii ch_5 a2 = true → ch_5 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##6: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq7 : ∀a2.eq_ascii ch_6 a2 = true → ch_6 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##7: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq8 : ∀a2.eq_ascii ch_7 a2 = true → ch_7 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##8: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq9 : ∀a2.eq_ascii ch_8 a2 = true → ch_8 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##9: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq10 : ∀a2.eq_ascii ch_9 a2 = true → ch_9 = a2. #a2; ncases a2; nnormalize; #H; ##[ ##10: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq11 : ∀a2.eq_ascii ch__ a2 = true → ch__ = a2. #a2; ncases a2; nnormalize; #H; ##[ ##11: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq12 : ∀a2.eq_ascii ch_A a2 = true → ch_A = a2. #a2; ncases a2; nnormalize; #H; ##[ ##12: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq13 : ∀a2.eq_ascii ch_B a2 = true → ch_B = a2. #a2; ncases a2; nnormalize; #H; ##[ ##13: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq14 : ∀a2.eq_ascii ch_C a2 = true → ch_C = a2. #a2; ncases a2; nnormalize; #H; ##[ ##14: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq15 : ∀a2.eq_ascii ch_D a2 = true → ch_D = a2. #a2; ncases a2; nnormalize; #H; ##[ ##15: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq16 : ∀a2.eq_ascii ch_E a2 = true → ch_E = a2. #a2; ncases a2; nnormalize; #H; ##[ ##16: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq17 : ∀a2.eq_ascii ch_F a2 = true → ch_F = a2. #a2; ncases a2; nnormalize; #H; ##[ ##17: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq18 : ∀a2.eq_ascii ch_G a2 = true → ch_G = a2. #a2; ncases a2; nnormalize; #H; ##[ ##18: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq19 : ∀a2.eq_ascii ch_H a2 = true → ch_H = a2. #a2; ncases a2; nnormalize; #H; ##[ ##19: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq20 : ∀a2.eq_ascii ch_I a2 = true → ch_I = a2. #a2; ncases a2; nnormalize; #H; ##[ ##20: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq21 : ∀a2.eq_ascii ch_J a2 = true → ch_J = a2. #a2; ncases a2; nnormalize; #H; ##[ ##21: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq22 : ∀a2.eq_ascii ch_K a2 = true → ch_K = a2. #a2; ncases a2; nnormalize; #H; ##[ ##22: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq23 : ∀a2.eq_ascii ch_L a2 = true → ch_L = a2. #a2; ncases a2; nnormalize; #H; ##[ ##23: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq24 : ∀a2.eq_ascii ch_M a2 = true → ch_M = a2. #a2; ncases a2; nnormalize; #H; ##[ ##24: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq25 : ∀a2.eq_ascii ch_N a2 = true → ch_N = a2. #a2; ncases a2; nnormalize; #H; ##[ ##25: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq26 : ∀a2.eq_ascii ch_O a2 = true → ch_O = a2. #a2; ncases a2; nnormalize; #H; ##[ ##26: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq27 : ∀a2.eq_ascii ch_P a2 = true → ch_P = a2. #a2; ncases a2; nnormalize; #H; ##[ ##27: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq28 : ∀a2.eq_ascii ch_Q a2 = true → ch_Q = a2. #a2; ncases a2; nnormalize; #H; ##[ ##28: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq29 : ∀a2.eq_ascii ch_R a2 = true → ch_R = a2. #a2; ncases a2; nnormalize; #H; ##[ ##29: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq30 : ∀a2.eq_ascii ch_S a2 = true → ch_S = a2. #a2; ncases a2; nnormalize; #H; ##[ ##30: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq31 : ∀a2.eq_ascii ch_T a2 = true → ch_T = a2. #a2; ncases a2; nnormalize; #H; ##[ ##31: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq32 : ∀a2.eq_ascii ch_U a2 = true → ch_U = a2. #a2; ncases a2; nnormalize; #H; ##[ ##32: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq33 : ∀a2.eq_ascii ch_V a2 = true → ch_V = a2. #a2; ncases a2; nnormalize; #H; ##[ ##33: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq34 : ∀a2.eq_ascii ch_W a2 = true → ch_W = a2. #a2; ncases a2; nnormalize; #H; ##[ ##34: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq35 : ∀a2.eq_ascii ch_X a2 = true → ch_X = a2. #a2; ncases a2; nnormalize; #H; ##[ ##35: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq36 : ∀a2.eq_ascii ch_Y a2 = true → ch_Y = a2. #a2; ncases a2; nnormalize; #H; ##[ ##36: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq37 : ∀a2.eq_ascii ch_Z a2 = true → ch_Z = a2. #a2; ncases a2; nnormalize; #H; ##[ ##37: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq38 : ∀a2.eq_ascii ch_a a2 = true → ch_a = a2. #a2; ncases a2; nnormalize; #H; ##[ ##38: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq39 : ∀a2.eq_ascii ch_b a2 = true → ch_b = a2. #a2; ncases a2; nnormalize; #H; ##[ ##39: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq40 : ∀a2.eq_ascii ch_c a2 = true → ch_c = a2. #a2; ncases a2; nnormalize; #H; ##[ ##40: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq41 : ∀a2.eq_ascii ch_d a2 = true → ch_d = a2. #a2; ncases a2; nnormalize; #H; ##[ ##41: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq42 : ∀a2.eq_ascii ch_e a2 = true → ch_e = a2. #a2; ncases a2; nnormalize; #H; ##[ ##42: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq43 : ∀a2.eq_ascii ch_f a2 = true → ch_f = a2. #a2; ncases a2; nnormalize; #H; ##[ ##43: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq44 : ∀a2.eq_ascii ch_g a2 = true → ch_g = a2. #a2; ncases a2; nnormalize; #H; ##[ ##44: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq45 : ∀a2.eq_ascii ch_h a2 = true → ch_h = a2. #a2; ncases a2; nnormalize; #H; ##[ ##45: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq46 : ∀a2.eq_ascii ch_i a2 = true → ch_i = a2. #a2; ncases a2; nnormalize; #H; ##[ ##46: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq47 : ∀a2.eq_ascii ch_j a2 = true → ch_j = a2. #a2; ncases a2; nnormalize; #H; ##[ ##47: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq48 : ∀a2.eq_ascii ch_k a2 = true → ch_k = a2. #a2; ncases a2; nnormalize; #H; ##[ ##48: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq49 : ∀a2.eq_ascii ch_l a2 = true → ch_l = a2. #a2; ncases a2; nnormalize; #H; ##[ ##49: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq50 : ∀a2.eq_ascii ch_m a2 = true → ch_m = a2. #a2; ncases a2; nnormalize; #H; ##[ ##50: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq51 : ∀a2.eq_ascii ch_n a2 = true → ch_n = a2. #a2; ncases a2; nnormalize; #H; ##[ ##51: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq52 : ∀a2.eq_ascii ch_o a2 = true → ch_o = a2. #a2; ncases a2; nnormalize; #H; ##[ ##52: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq53 : ∀a2.eq_ascii ch_p a2 = true → ch_p = a2. #a2; ncases a2; nnormalize; #H; ##[ ##53: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq54 : ∀a2.eq_ascii ch_q a2 = true → ch_q = a2. #a2; ncases a2; nnormalize; #H; ##[ ##54: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq55 : ∀a2.eq_ascii ch_r a2 = true → ch_r = a2. #a2; ncases a2; nnormalize; #H; ##[ ##55: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq56 : ∀a2.eq_ascii ch_s a2 = true → ch_s = a2. #a2; ncases a2; nnormalize; #H; ##[ ##56: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq57 : ∀a2.eq_ascii ch_t a2 = true → ch_t = a2. #a2; ncases a2; nnormalize; #H; ##[ ##57: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq58 : ∀a2.eq_ascii ch_u a2 = true → ch_u = a2. #a2; ncases a2; nnormalize; #H; ##[ ##58: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq59 : ∀a2.eq_ascii ch_v a2 = true → ch_v = a2. #a2; ncases a2; nnormalize; #H; ##[ ##59: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq60 : ∀a2.eq_ascii ch_w a2 = true → ch_w = a2. #a2; ncases a2; nnormalize; #H; ##[ ##60: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq61 : ∀a2.eq_ascii ch_x a2 = true → ch_x = a2. #a2; ncases a2; nnormalize; #H; ##[ ##61: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq62 : ∀a2.eq_ascii ch_y a2 = true → ch_y = a2. #a2; ncases a2; nnormalize; #H; ##[ ##62: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+nlemma eqascii_to_eq63 : ∀a2.eq_ascii ch_z a2 = true → ch_z = a2. #a2; ncases a2; nnormalize; #H; ##[ ##63: napply (refl_eq ??) | ##*: napply (bool_destruct ??? H) ##] nqed.
+
+nlemma eqascii_to_eq : ∀c1,c2.eq_ascii c1 c2 = true → c1 = c2.
+ #c1; ncases c1;
+ ##[ ##1: napply eqascii_to_eq1 ##| ##2: napply eqascii_to_eq2
+ ##| ##3: napply eqascii_to_eq3 ##| ##4: napply eqascii_to_eq4
+ ##| ##5: napply eqascii_to_eq5 ##| ##6: napply eqascii_to_eq6
+ ##| ##7: napply eqascii_to_eq7 ##| ##8: napply eqascii_to_eq8 
+ ##| ##9: napply eqascii_to_eq9 ##| ##10: napply eqascii_to_eq10
+ ##| ##11: napply eqascii_to_eq11 ##| ##12: napply eqascii_to_eq12 
+ ##| ##13: napply eqascii_to_eq13 ##| ##14: napply eqascii_to_eq14 
+ ##| ##15: napply eqascii_to_eq15 ##| ##16: napply eqascii_to_eq16 
+ ##| ##17: napply eqascii_to_eq17 ##| ##18: napply eqascii_to_eq18
+ ##| ##19: napply eqascii_to_eq19 ##| ##20: napply eqascii_to_eq20 
+ ##| ##21: napply eqascii_to_eq21 ##| ##22: napply eqascii_to_eq22 
+ ##| ##23: napply eqascii_to_eq23 ##| ##24: napply eqascii_to_eq24 
+ ##| ##25: napply eqascii_to_eq25 ##| ##26: napply eqascii_to_eq26
+ ##| ##27: napply eqascii_to_eq27 ##| ##28: napply eqascii_to_eq28
+ ##| ##29: napply eqascii_to_eq29 ##| ##30: napply eqascii_to_eq30 
+ ##| ##31: napply eqascii_to_eq31 ##| ##32: napply eqascii_to_eq32 
+ ##| ##33: napply eqascii_to_eq33 ##| ##34: napply eqascii_to_eq34
+ ##| ##35: napply eqascii_to_eq35 ##| ##36: napply eqascii_to_eq36
+ ##| ##37: napply eqascii_to_eq37 ##| ##38: napply eqascii_to_eq38
+ ##| ##39: napply eqascii_to_eq39 ##| ##40: napply eqascii_to_eq40
+ ##| ##41: napply eqascii_to_eq41 ##| ##42: napply eqascii_to_eq42
+ ##| ##43: napply eqascii_to_eq43 ##| ##44: napply eqascii_to_eq44 
+ ##| ##45: napply eqascii_to_eq45 ##| ##46: napply eqascii_to_eq46
+ ##| ##47: napply eqascii_to_eq47 ##| ##48: napply eqascii_to_eq48 
+ ##| ##49: napply eqascii_to_eq49 ##| ##50: napply eqascii_to_eq50
+ ##| ##51: napply eqascii_to_eq51 ##| ##52: napply eqascii_to_eq52
+ ##| ##53: napply eqascii_to_eq53 ##| ##54: napply eqascii_to_eq54 
+ ##| ##55: napply eqascii_to_eq55 ##| ##56: napply eqascii_to_eq56
+ ##| ##57: napply eqascii_to_eq57 ##| ##58: napply eqascii_to_eq58
+ ##| ##59: napply eqascii_to_eq59 ##| ##60: napply eqascii_to_eq60 
+ ##| ##61: napply eqascii_to_eq61 ##| ##62: napply eqascii_to_eq62 
+ ##| ##63: napply eqascii_to_eq63 ##]
+nqed.
+
+nlemma eq_to_eqascii1 : ∀a2.ch_0 = a2 → eq_ascii ch_0 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##1: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii2 : ∀a2.ch_1 = a2 → eq_ascii ch_1 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##2: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii3 : ∀a2.ch_2 = a2 → eq_ascii ch_2 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##3: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii4 : ∀a2.ch_3 = a2 → eq_ascii ch_3 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##4: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii5 : ∀a2.ch_4 = a2 → eq_ascii ch_4 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##5: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii6 : ∀a2.ch_5 = a2 → eq_ascii ch_5 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##6: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii7 : ∀a2.ch_6 = a2 → eq_ascii ch_6 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##7: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii8 : ∀a2.ch_7 = a2 → eq_ascii ch_7 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##8: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii9 : ∀a2.ch_8 = a2 → eq_ascii ch_8 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##9: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii10 : ∀a2.ch_9 = a2 → eq_ascii ch_9 a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##10: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii11 : ∀a2.ch__ = a2 → eq_ascii ch__ a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##11: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii12 : ∀a2.ch_A = a2 → eq_ascii ch_A a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##12: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii13 : ∀a2.ch_B = a2 → eq_ascii ch_B a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##13: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii14 : ∀a2.ch_C = a2 → eq_ascii ch_C a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##14: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii15 : ∀a2.ch_D = a2 → eq_ascii ch_D a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##15: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii16 : ∀a2.ch_E = a2 → eq_ascii ch_E a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##16: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii17 : ∀a2.ch_F = a2 → eq_ascii ch_F a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##17: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii18 : ∀a2.ch_G = a2 → eq_ascii ch_G a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##18: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii19 : ∀a2.ch_H = a2 → eq_ascii ch_H a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##19: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii20 : ∀a2.ch_I = a2 → eq_ascii ch_I a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##20: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii21 : ∀a2.ch_J = a2 → eq_ascii ch_J a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##21: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii22 : ∀a2.ch_K = a2 → eq_ascii ch_K a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##22: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii23 : ∀a2.ch_L = a2 → eq_ascii ch_L a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##23: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii24 : ∀a2.ch_M = a2 → eq_ascii ch_M a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##24: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii25 : ∀a2.ch_N = a2 → eq_ascii ch_N a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##25: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii26 : ∀a2.ch_O = a2 → eq_ascii ch_O a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##26: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii27 : ∀a2.ch_P = a2 → eq_ascii ch_P a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##27: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii28 : ∀a2.ch_Q = a2 → eq_ascii ch_Q a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##28: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii29 : ∀a2.ch_R = a2 → eq_ascii ch_R a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##29: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii30 : ∀a2.ch_S = a2 → eq_ascii ch_S a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##30: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii31 : ∀a2.ch_T = a2 → eq_ascii ch_T a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##31: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii32 : ∀a2.ch_U = a2 → eq_ascii ch_U a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##32: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii33 : ∀a2.ch_V = a2 → eq_ascii ch_V a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##33: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii34 : ∀a2.ch_W = a2 → eq_ascii ch_W a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##34: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii35 : ∀a2.ch_X = a2 → eq_ascii ch_X a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##35: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii36 : ∀a2.ch_Y = a2 → eq_ascii ch_Y a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##36: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii37 : ∀a2.ch_Z = a2 → eq_ascii ch_Z a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##37: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii38 : ∀a2.ch_a = a2 → eq_ascii ch_a a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##38: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii39 : ∀a2.ch_b = a2 → eq_ascii ch_b a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##39: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii40 : ∀a2.ch_c = a2 → eq_ascii ch_c a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##40: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii41 : ∀a2.ch_d = a2 → eq_ascii ch_d a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##41: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii42 : ∀a2.ch_e = a2 → eq_ascii ch_e a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##42: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii43 : ∀a2.ch_f = a2 → eq_ascii ch_f a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##43: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii44 : ∀a2.ch_g = a2 → eq_ascii ch_g a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##44: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii45 : ∀a2.ch_h = a2 → eq_ascii ch_h a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##45: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii46 : ∀a2.ch_i = a2 → eq_ascii ch_i a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##46: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii47 : ∀a2.ch_j = a2 → eq_ascii ch_j a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##47: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii48 : ∀a2.ch_k = a2 → eq_ascii ch_k a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##48: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii49 : ∀a2.ch_l = a2 → eq_ascii ch_l a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##49: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii50 : ∀a2.ch_m = a2 → eq_ascii ch_m a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##50: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii51 : ∀a2.ch_n = a2 → eq_ascii ch_n a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##51: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii52 : ∀a2.ch_o = a2 → eq_ascii ch_o a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##52: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii53 : ∀a2.ch_p = a2 → eq_ascii ch_p a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##53: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii54 : ∀a2.ch_q = a2 → eq_ascii ch_q a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##54: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii55 : ∀a2.ch_r = a2 → eq_ascii ch_r a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##55: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii56 : ∀a2.ch_s = a2 → eq_ascii ch_s a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##56: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii57 : ∀a2.ch_t = a2 → eq_ascii ch_t a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##57: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii58 : ∀a2.ch_u = a2 → eq_ascii ch_u a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##58: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii59 : ∀a2.ch_v = a2 → eq_ascii ch_v a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##59: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii60 : ∀a2.ch_w = a2 → eq_ascii ch_w a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##60: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii61 : ∀a2.ch_x = a2 → eq_ascii ch_x a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##61: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii62 : ∀a2.ch_y = a2 → eq_ascii ch_y a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##62: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+nlemma eq_to_eqascii63 : ∀a2.ch_z = a2 → eq_ascii ch_z a2 = true. #a2; ncases a2; nnormalize; #H; ##[ ##63: napply (refl_eq ??) | ##*: napply (ascii_destruct ??? H) ##] nqed.
+
+nlemma eq_to_eqascii : ∀c1,c2.c1 = c2 → eq_ascii c1 c2 = true.
+ #c1; ncases c1;
+ ##[ ##1: napply eq_to_eqascii1 ##| ##2: napply eq_to_eqascii2
+ ##| ##3: napply eq_to_eqascii3 ##| ##4: napply eq_to_eqascii4
+ ##| ##5: napply eq_to_eqascii5 ##| ##6: napply eq_to_eqascii6
+ ##| ##7: napply eq_to_eqascii7 ##| ##8: napply eq_to_eqascii8 
+ ##| ##9: napply eq_to_eqascii9 ##| ##10: napply eq_to_eqascii10
+ ##| ##11: napply eq_to_eqascii11 ##| ##12: napply eq_to_eqascii12 
+ ##| ##13: napply eq_to_eqascii13 ##| ##14: napply eq_to_eqascii14 
+ ##| ##15: napply eq_to_eqascii15 ##| ##16: napply eq_to_eqascii16 
+ ##| ##17: napply eq_to_eqascii17 ##| ##18: napply eq_to_eqascii18
+ ##| ##19: napply eq_to_eqascii19 ##| ##20: napply eq_to_eqascii20 
+ ##| ##21: napply eq_to_eqascii21 ##| ##22: napply eq_to_eqascii22 
+ ##| ##23: napply eq_to_eqascii23 ##| ##24: napply eq_to_eqascii24 
+ ##| ##25: napply eq_to_eqascii25 ##| ##26: napply eq_to_eqascii26
+ ##| ##27: napply eq_to_eqascii27 ##| ##28: napply eq_to_eqascii28
+ ##| ##29: napply eq_to_eqascii29 ##| ##30: napply eq_to_eqascii30 
+ ##| ##31: napply eq_to_eqascii31 ##| ##32: napply eq_to_eqascii32 
+ ##| ##33: napply eq_to_eqascii33 ##| ##34: napply eq_to_eqascii34
+ ##| ##35: napply eq_to_eqascii35 ##| ##36: napply eq_to_eqascii36
+ ##| ##37: napply eq_to_eqascii37 ##| ##38: napply eq_to_eqascii38
+ ##| ##39: napply eq_to_eqascii39 ##| ##40: napply eq_to_eqascii40
+ ##| ##41: napply eq_to_eqascii41 ##| ##42: napply eq_to_eqascii42
+ ##| ##43: napply eq_to_eqascii43 ##| ##44: napply eq_to_eqascii44 
+ ##| ##45: napply eq_to_eqascii45 ##| ##46: napply eq_to_eqascii46
+ ##| ##47: napply eq_to_eqascii47 ##| ##48: napply eq_to_eqascii48 
+ ##| ##49: napply eq_to_eqascii49 ##| ##50: napply eq_to_eqascii50
+ ##| ##51: napply eq_to_eqascii51 ##| ##52: napply eq_to_eqascii52
+ ##| ##53: napply eq_to_eqascii53 ##| ##54: napply eq_to_eqascii54 
+ ##| ##55: napply eq_to_eqascii55 ##| ##56: napply eq_to_eqascii56
+ ##| ##57: napply eq_to_eqascii57 ##| ##58: napply eq_to_eqascii58
+ ##| ##59: napply eq_to_eqascii59 ##| ##60: napply eq_to_eqascii60 
+ ##| ##61: napply eq_to_eqascii61 ##| ##62: napply eq_to_eqascii62 
+ ##| ##63: napply eq_to_eqascii63 ##]
+nqed.