X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fng_assembly%2Ffreescale%2Fopcode_base_lemmas_instrmode2.ma;h=9992a4c5e2c6967c81060139b4d0dd35074c6673;hb=38fccc2b774e493a94eedef76342b56079c0e694;hp=ae0eb7558ce96898ec51cc69841c27458f9eace1;hpb=20fdd66303330e6209059e90b6a98af71ec29567;p=helm.git diff --git a/helm/software/matita/contribs/ng_assembly/freescale/opcode_base_lemmas_instrmode2.ma b/helm/software/matita/contribs/ng_assembly/freescale/opcode_base_lemmas_instrmode2.ma index ae0eb7558..9992a4c5e 100755 --- a/helm/software/matita/contribs/ng_assembly/freescale/opcode_base_lemmas_instrmode2.ma +++ b/helm/software/matita/contribs/ng_assembly/freescale/opcode_base_lemmas_instrmode2.ma @@ -13,15 +13,11 @@ (**************************************************************************) (* ********************************************************************** *) -(* Progetto FreeScale *) +(* Progetto FreeScale *) (* *) -(* Sviluppato da: *) -(* Cosimo Oliboni, oliboni@cs.unibo.it *) +(* Sviluppato da: Ing. Cosimo Oliboni, oliboni@cs.unibo.it *) +(* Ultima modifica: 05/08/2009 *) (* *) -(* Questo materiale fa parte della tesi: *) -(* "Formalizzazione Interattiva dei Microcontroller a 8bit FreeScale" *) -(* *) -(* data ultima modifica 15/11/2007 *) (* ********************************************************************** *) include "freescale/opcode_base_lemmas_instrmode1.ma". @@ -30,682 +26,682 @@ include "freescale/opcode_base_lemmas_instrmode1.ma". (* MATTONI BASE PER DEFINIRE LE TABELLE DELLE MCU *) (* ********************************************** *) -nlemma symmetric_eqinstrmode : symmetricT instr_mode bool eq_instrmode. +nlemma symmetric_eqim : symmetricT instr_mode bool eq_im. #i1; #i2; ncases i1; - ##[ ##1: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##2: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##3: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##4: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##5: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##6: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##7: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##8: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##9: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##10: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##11: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##12: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##13: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##14: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##15: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##16: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##17: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##18: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##19: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##20: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##21: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##22: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##23: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##24: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##25: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##26: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##27: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##28: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##29: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) - ##| ##30: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply (refl_eq ??) + ##[ ##1: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##2: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##3: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##4: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##5: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##6: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##7: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##8: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##9: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##10: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##11: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##12: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##13: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##14: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##15: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##16: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##17: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##18: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##19: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##20: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##21: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##22: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##23: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##24: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##25: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##26: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##27: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##28: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##29: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq + ##| ##30: ncases i2; nnormalize; ##[ ##31,32,33,34: #n ##] napply refl_eq ##| ##31: ncases i2; #n1; ##[ ##31: #n2; nchange with (eq_oct n2 n1 = eq_oct n1 n2); nrewrite > (symmetric_eqoct n1 n2); ##| ##32,33,34: #n2; nnormalize ##] - nnormalize; napply (refl_eq ??) + nnormalize; napply refl_eq ##| ##32: ncases i2; #n1; ##[ ##32: #n2; nchange with (eq_oct n2 n1 = eq_oct n1 n2); nrewrite > (symmetric_eqoct n1 n2); ##| ##31,33,34: #n2; nnormalize ##] - nnormalize; napply (refl_eq ??) + nnormalize; napply refl_eq ##| ##33: ncases i2; #n1; ##[ ##33: #n2; nchange with (eq_ex n2 n1 = eq_ex n1 n2); nrewrite > (symmetric_eqex n1 n2); ##| ##31,32,34: #n2; nnormalize ##] - nnormalize; napply (refl_eq ??) + nnormalize; napply refl_eq ##| ##34: ncases i2; #n1; ##[ ##34: #n2; - nchange with (eq_bitrig n2 n1 = eq_bitrig n1 n2); - nrewrite > (symmetric_eqbitrig n1 n2); + nchange with (eq_bit n2 n1 = eq_bit n1 n2); + nrewrite > (symmetric_eqbit n1 n2); ##| ##31,32,33: #n2; nnormalize ##] - nnormalize; napply (refl_eq ??) + nnormalize; napply refl_eq ##] nqed. -nlemma eqinstrmode_to_eq1 : ∀i2.eq_instrmode MODE_INH i2 = true → MODE_INH = i2. +nlemma eqim_to_eq1 : ∀i2.eq_im MODE_INH i2 = true → MODE_INH = i2. #i2; ncases i2; nnormalize; - ##[ ##1: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##1: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq2 : ∀i2.eq_instrmode MODE_INHA i2 = true → MODE_INHA = i2. +nlemma eqim_to_eq2 : ∀i2.eq_im MODE_INHA i2 = true → MODE_INHA = i2. #i2; ncases i2; nnormalize; - ##[ ##2: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##2: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq3 : ∀i2.eq_instrmode MODE_INHX i2 = true → MODE_INHX = i2. +nlemma eqim_to_eq3 : ∀i2.eq_im MODE_INHX i2 = true → MODE_INHX = i2. #i2; ncases i2; nnormalize; - ##[ ##3: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##3: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq4 : ∀i2.eq_instrmode MODE_INHH i2 = true → MODE_INHH = i2. +nlemma eqim_to_eq4 : ∀i2.eq_im MODE_INHH i2 = true → MODE_INHH = i2. #i2; ncases i2; nnormalize; - ##[ ##4: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##4: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq5 : ∀i2.eq_instrmode MODE_INHX0ADD i2 = true → MODE_INHX0ADD = i2. +nlemma eqim_to_eq5 : ∀i2.eq_im MODE_INHX0ADD i2 = true → MODE_INHX0ADD = i2. #i2; ncases i2; nnormalize; - ##[ ##5: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##5: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq6 : ∀i2.eq_instrmode MODE_INHX1ADD i2 = true → MODE_INHX1ADD = i2. +nlemma eqim_to_eq6 : ∀i2.eq_im MODE_INHX1ADD i2 = true → MODE_INHX1ADD = i2. #i2; ncases i2; nnormalize; - ##[ ##6: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##6: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq7 : ∀i2.eq_instrmode MODE_INHX2ADD i2 = true → MODE_INHX2ADD = i2. +nlemma eqim_to_eq7 : ∀i2.eq_im MODE_INHX2ADD i2 = true → MODE_INHX2ADD = i2. #i2; ncases i2; nnormalize; - ##[ ##7: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##7: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq8 : ∀i2.eq_instrmode MODE_IMM1 i2 = true → MODE_IMM1 = i2. +nlemma eqim_to_eq8 : ∀i2.eq_im MODE_IMM1 i2 = true → MODE_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##8: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##8: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq9 : ∀i2.eq_instrmode MODE_IMM1EXT i2 = true → MODE_IMM1EXT = i2. +nlemma eqim_to_eq9 : ∀i2.eq_im MODE_IMM1EXT i2 = true → MODE_IMM1EXT = i2. #i2; ncases i2; nnormalize; - ##[ ##9: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##9: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq10 : ∀i2.eq_instrmode MODE_IMM2 i2 = true → MODE_IMM2 = i2. +nlemma eqim_to_eq10 : ∀i2.eq_im MODE_IMM2 i2 = true → MODE_IMM2 = i2. #i2; ncases i2; nnormalize; - ##[ ##10: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##10: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq11 : ∀i2.eq_instrmode MODE_DIR1 i2 = true → MODE_DIR1 = i2. +nlemma eqim_to_eq11 : ∀i2.eq_im MODE_DIR1 i2 = true → MODE_DIR1 = i2. #i2; ncases i2; nnormalize; - ##[ ##11: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##11: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq12 : ∀i2.eq_instrmode MODE_DIR2 i2 = true → MODE_DIR2 = i2. +nlemma eqim_to_eq12 : ∀i2.eq_im MODE_DIR2 i2 = true → MODE_DIR2 = i2. #i2; ncases i2; nnormalize; - ##[ ##12: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##12: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq13 : ∀i2.eq_instrmode MODE_IX0 i2 = true → MODE_IX0 = i2. +nlemma eqim_to_eq13 : ∀i2.eq_im MODE_IX0 i2 = true → MODE_IX0 = i2. #i2; ncases i2; nnormalize; - ##[ ##13: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##13: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq14 : ∀i2.eq_instrmode MODE_IX1 i2 = true → MODE_IX1 = i2. +nlemma eqim_to_eq14 : ∀i2.eq_im MODE_IX1 i2 = true → MODE_IX1 = i2. #i2; ncases i2; nnormalize; - ##[ ##14: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##14: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq15 : ∀i2.eq_instrmode MODE_IX2 i2 = true → MODE_IX2 = i2. +nlemma eqim_to_eq15 : ∀i2.eq_im MODE_IX2 i2 = true → MODE_IX2 = i2. #i2; ncases i2; nnormalize; - ##[ ##15: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##15: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq16 : ∀i2.eq_instrmode MODE_SP1 i2 = true → MODE_SP1 = i2. +nlemma eqim_to_eq16 : ∀i2.eq_im MODE_SP1 i2 = true → MODE_SP1 = i2. #i2; ncases i2; nnormalize; - ##[ ##16: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##16: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq17 : ∀i2.eq_instrmode MODE_SP2 i2 = true → MODE_SP2 = i2. +nlemma eqim_to_eq17 : ∀i2.eq_im MODE_SP2 i2 = true → MODE_SP2 = i2. #i2; ncases i2; nnormalize; - ##[ ##17: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##17: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq18 : ∀i2.eq_instrmode MODE_DIR1_to_DIR1 i2 = true → MODE_DIR1_to_DIR1 = i2. +nlemma eqim_to_eq18 : ∀i2.eq_im MODE_DIR1_to_DIR1 i2 = true → MODE_DIR1_to_DIR1 = i2. #i2; ncases i2; nnormalize; - ##[ ##18: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##18: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq19 : ∀i2.eq_instrmode MODE_IMM1_to_DIR1 i2 = true → MODE_IMM1_to_DIR1 = i2. +nlemma eqim_to_eq19 : ∀i2.eq_im MODE_IMM1_to_DIR1 i2 = true → MODE_IMM1_to_DIR1 = i2. #i2; ncases i2; nnormalize; - ##[ ##19: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##19: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq20 : ∀i2.eq_instrmode MODE_IX0p_to_DIR1 i2 = true → MODE_IX0p_to_DIR1 = i2. +nlemma eqim_to_eq20 : ∀i2.eq_im MODE_IX0p_to_DIR1 i2 = true → MODE_IX0p_to_DIR1 = i2. #i2; ncases i2; nnormalize; - ##[ ##20: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##20: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq21 : ∀i2.eq_instrmode MODE_DIR1_to_IX0p i2 = true → MODE_DIR1_to_IX0p = i2. +nlemma eqim_to_eq21 : ∀i2.eq_im MODE_DIR1_to_IX0p i2 = true → MODE_DIR1_to_IX0p = i2. #i2; ncases i2; nnormalize; - ##[ ##21: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##21: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq22 : ∀i2.eq_instrmode MODE_INHA_and_IMM1 i2 = true → MODE_INHA_and_IMM1 = i2. +nlemma eqim_to_eq22 : ∀i2.eq_im MODE_INHA_and_IMM1 i2 = true → MODE_INHA_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##22: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##22: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq23 : ∀i2.eq_instrmode MODE_INHX_and_IMM1 i2 = true → MODE_INHX_and_IMM1 = i2. +nlemma eqim_to_eq23 : ∀i2.eq_im MODE_INHX_and_IMM1 i2 = true → MODE_INHX_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##23: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##23: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq24 : ∀i2.eq_instrmode MODE_IMM1_and_IMM1 i2 = true → MODE_IMM1_and_IMM1 = i2. +nlemma eqim_to_eq24 : ∀i2.eq_im MODE_IMM1_and_IMM1 i2 = true → MODE_IMM1_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##24: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##24: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq25 : ∀i2.eq_instrmode MODE_DIR1_and_IMM1 i2 = true → MODE_DIR1_and_IMM1 = i2. +nlemma eqim_to_eq25 : ∀i2.eq_im MODE_DIR1_and_IMM1 i2 = true → MODE_DIR1_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##25: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##25: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq26 : ∀i2.eq_instrmode MODE_IX0_and_IMM1 i2 = true → MODE_IX0_and_IMM1 = i2. +nlemma eqim_to_eq26 : ∀i2.eq_im MODE_IX0_and_IMM1 i2 = true → MODE_IX0_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##26: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##26: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq27 : ∀i2.eq_instrmode MODE_IX0p_and_IMM1 i2 = true → MODE_IX0p_and_IMM1 = i2. +nlemma eqim_to_eq27 : ∀i2.eq_im MODE_IX0p_and_IMM1 i2 = true → MODE_IX0p_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##27: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##27: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq28 : ∀i2.eq_instrmode MODE_IX1_and_IMM1 i2 = true → MODE_IX1_and_IMM1 = i2. +nlemma eqim_to_eq28 : ∀i2.eq_im MODE_IX1_and_IMM1 i2 = true → MODE_IX1_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##28: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##28: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq29 : ∀i2.eq_instrmode MODE_IX1p_and_IMM1 i2 = true → MODE_IX1p_and_IMM1 = i2. +nlemma eqim_to_eq29 : ∀i2.eq_im MODE_IX1p_and_IMM1 i2 = true → MODE_IX1p_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##29: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##29: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq30 : ∀i2.eq_instrmode MODE_SP1_and_IMM1 i2 = true → MODE_SP1_and_IMM1 = i2. +nlemma eqim_to_eq30 : ∀i2.eq_im MODE_SP1_and_IMM1 i2 = true → MODE_SP1_and_IMM1 = i2. #i2; ncases i2; nnormalize; - ##[ ##30: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (bool_destruct ??? H) - ##| ##*: #H; napply (bool_destruct ??? H) + ##[ ##30: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (bool_destruct … H) + ##| ##*: #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq31 : ∀n1,i2.eq_instrmode (MODE_DIRn n1) i2 = true → MODE_DIRn n1 = i2. +nlemma eqim_to_eq31 : ∀n1,i2.eq_im (MODE_DIRn n1) i2 = true → MODE_DIRn n1 = i2. #n1; #i2; ncases i2; ##[ ##31: #n2; #H; nchange in H:(%) with (eq_oct n1 n2 = true); - nrewrite > (eqoct_to_eq ?? H); - napply (refl_eq ??) - ##| ##32,33,34: nnormalize; #n2; #H; napply (bool_destruct ??? H) - ##| ##*: nnormalize; #H; napply (bool_destruct ??? H) + nrewrite > (eqoct_to_eq … H); + napply refl_eq + ##| ##32,33,34: nnormalize; #n2; #H; napply (bool_destruct … H) + ##| ##*: nnormalize; #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq32 : ∀n1,i2.eq_instrmode (MODE_DIRn_and_IMM1 n1) i2 = true → MODE_DIRn_and_IMM1 n1 = i2. +nlemma eqim_to_eq32 : ∀n1,i2.eq_im (MODE_DIRn_and_IMM1 n1) i2 = true → MODE_DIRn_and_IMM1 n1 = i2. #n1; #i2; ncases i2; ##[ ##32: #n2; #H; nchange in H:(%) with (eq_oct n1 n2 = true); - nrewrite > (eqoct_to_eq ?? H); - napply (refl_eq ??) - ##| ##31,33,34: nnormalize; #n2; #H; napply (bool_destruct ??? H) - ##| ##*: nnormalize; #H; napply (bool_destruct ??? H) + nrewrite > (eqoct_to_eq … H); + napply refl_eq + ##| ##31,33,34: nnormalize; #n2; #H; napply (bool_destruct … H) + ##| ##*: nnormalize; #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq33 : ∀n1,i2.eq_instrmode (MODE_TNY n1) i2 = true → MODE_TNY n1 = i2. +nlemma eqim_to_eq33 : ∀n1,i2.eq_im (MODE_TNY n1) i2 = true → MODE_TNY n1 = i2. #n1; #i2; ncases i2; ##[ ##33: #n2; #H; nchange in H:(%) with (eq_ex n1 n2 = true); - nrewrite > (eqex_to_eq ?? H); - napply (refl_eq ??) - ##| ##31,32,34: nnormalize; #n2; #H; napply (bool_destruct ??? H) - ##| ##*: nnormalize; #H; napply (bool_destruct ??? H) + nrewrite > (eqex_to_eq … H); + napply refl_eq + ##| ##31,32,34: nnormalize; #n2; #H; napply (bool_destruct … H) + ##| ##*: nnormalize; #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq34 : ∀n1,i2.eq_instrmode (MODE_SRT n1) i2 = true → MODE_SRT n1 = i2. +nlemma eqim_to_eq34 : ∀n1,i2.eq_im (MODE_SRT n1) i2 = true → MODE_SRT n1 = i2. #n1; #i2; ncases i2; ##[ ##34: #n2; #H; - nchange in H:(%) with (eq_bitrig n1 n2 = true); - nrewrite > (eqbitrig_to_eq ?? H); - napply (refl_eq ??) - ##| ##31,32,33: nnormalize; #n2; #H; napply (bool_destruct ??? H) - ##| ##*: nnormalize; #H; napply (bool_destruct ??? H) + nchange in H:(%) with (eq_bit n1 n2 = true); + nrewrite > (eqbit_to_eq … H); + napply refl_eq + ##| ##31,32,33: nnormalize; #n2; #H; napply (bool_destruct … H) + ##| ##*: nnormalize; #H; napply (bool_destruct … H) ##] nqed. -nlemma eqinstrmode_to_eq : ∀i1,i2.eq_instrmode i1 i2 = true → i1 = i2. +nlemma eqim_to_eq : ∀i1,i2.eq_im i1 i2 = true → i1 = i2. #i1; ncases i1; - ##[ ##1: napply eqinstrmode_to_eq1 ##| ##2: napply eqinstrmode_to_eq2 - ##| ##3: napply eqinstrmode_to_eq3 ##| ##4: napply eqinstrmode_to_eq4 - ##| ##5: napply eqinstrmode_to_eq5 ##| ##6: napply eqinstrmode_to_eq6 - ##| ##7: napply eqinstrmode_to_eq7 ##| ##8: napply eqinstrmode_to_eq8 - ##| ##9: napply eqinstrmode_to_eq9 ##| ##10: napply eqinstrmode_to_eq10 - ##| ##11: napply eqinstrmode_to_eq11 ##| ##12: napply eqinstrmode_to_eq12 - ##| ##13: napply eqinstrmode_to_eq13 ##| ##14: napply eqinstrmode_to_eq14 - ##| ##15: napply eqinstrmode_to_eq15 ##| ##16: napply eqinstrmode_to_eq16 - ##| ##17: napply eqinstrmode_to_eq17 ##| ##18: napply eqinstrmode_to_eq18 - ##| ##19: napply eqinstrmode_to_eq19 ##| ##20: napply eqinstrmode_to_eq20 - ##| ##21: napply eqinstrmode_to_eq21 ##| ##22: napply eqinstrmode_to_eq22 - ##| ##23: napply eqinstrmode_to_eq23 ##| ##24: napply eqinstrmode_to_eq24 - ##| ##25: napply eqinstrmode_to_eq25 ##| ##26: napply eqinstrmode_to_eq26 - ##| ##27: napply eqinstrmode_to_eq27 ##| ##28: napply eqinstrmode_to_eq28 - ##| ##29: napply eqinstrmode_to_eq29 ##| ##30: napply eqinstrmode_to_eq30 - ##| ##31: napply eqinstrmode_to_eq31 ##| ##32: napply eqinstrmode_to_eq32 - ##| ##33: napply eqinstrmode_to_eq33 ##| ##34: napply eqinstrmode_to_eq34 - ##] -nqed. - -nlemma eq_to_eqinstrmode1 : ∀i2.MODE_INH = i2 → eq_instrmode MODE_INH i2 = true. + ##[ ##1: napply eqim_to_eq1 ##| ##2: napply eqim_to_eq2 + ##| ##3: napply eqim_to_eq3 ##| ##4: napply eqim_to_eq4 + ##| ##5: napply eqim_to_eq5 ##| ##6: napply eqim_to_eq6 + ##| ##7: napply eqim_to_eq7 ##| ##8: napply eqim_to_eq8 + ##| ##9: napply eqim_to_eq9 ##| ##10: napply eqim_to_eq10 + ##| ##11: napply eqim_to_eq11 ##| ##12: napply eqim_to_eq12 + ##| ##13: napply eqim_to_eq13 ##| ##14: napply eqim_to_eq14 + ##| ##15: napply eqim_to_eq15 ##| ##16: napply eqim_to_eq16 + ##| ##17: napply eqim_to_eq17 ##| ##18: napply eqim_to_eq18 + ##| ##19: napply eqim_to_eq19 ##| ##20: napply eqim_to_eq20 + ##| ##21: napply eqim_to_eq21 ##| ##22: napply eqim_to_eq22 + ##| ##23: napply eqim_to_eq23 ##| ##24: napply eqim_to_eq24 + ##| ##25: napply eqim_to_eq25 ##| ##26: napply eqim_to_eq26 + ##| ##27: napply eqim_to_eq27 ##| ##28: napply eqim_to_eq28 + ##| ##29: napply eqim_to_eq29 ##| ##30: napply eqim_to_eq30 + ##| ##31: napply eqim_to_eq31 ##| ##32: napply eqim_to_eq32 + ##| ##33: napply eqim_to_eq33 ##| ##34: napply eqim_to_eq34 + ##] +nqed. + +nlemma eq_to_eqim1 : ∀i2.MODE_INH = i2 → eq_im MODE_INH i2 = true. #t2; ncases t2; nnormalize; - ##[ ##1: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##1: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode2 : ∀i2.MODE_INHA = i2 → eq_instrmode MODE_INHA i2 = true. +nlemma eq_to_eqim2 : ∀i2.MODE_INHA = i2 → eq_im MODE_INHA i2 = true. #t2; ncases t2; nnormalize; - ##[ ##2: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##2: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode3 : ∀i2.MODE_INHX = i2 → eq_instrmode MODE_INHX i2 = true. +nlemma eq_to_eqim3 : ∀i2.MODE_INHX = i2 → eq_im MODE_INHX i2 = true. #t2; ncases t2; nnormalize; - ##[ ##3: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##3: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode4 : ∀i2.MODE_INHH = i2 → eq_instrmode MODE_INHH i2 = true. +nlemma eq_to_eqim4 : ∀i2.MODE_INHH = i2 → eq_im MODE_INHH i2 = true. #t2; ncases t2; nnormalize; - ##[ ##4: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##4: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode5 : ∀i2.MODE_INHX0ADD = i2 → eq_instrmode MODE_INHX0ADD i2 = true. +nlemma eq_to_eqim5 : ∀i2.MODE_INHX0ADD = i2 → eq_im MODE_INHX0ADD i2 = true. #t2; ncases t2; nnormalize; - ##[ ##5: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##5: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode6 : ∀i2.MODE_INHX1ADD = i2 → eq_instrmode MODE_INHX1ADD i2 = true. +nlemma eq_to_eqim6 : ∀i2.MODE_INHX1ADD = i2 → eq_im MODE_INHX1ADD i2 = true. #t2; ncases t2; nnormalize; - ##[ ##6: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##6: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode7 : ∀i2.MODE_INHX2ADD = i2 → eq_instrmode MODE_INHX2ADD i2 = true. +nlemma eq_to_eqim7 : ∀i2.MODE_INHX2ADD = i2 → eq_im MODE_INHX2ADD i2 = true. #t2; ncases t2; nnormalize; - ##[ ##7: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##7: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode8 : ∀i2.MODE_IMM1 = i2 → eq_instrmode MODE_IMM1 i2 = true. +nlemma eq_to_eqim8 : ∀i2.MODE_IMM1 = i2 → eq_im MODE_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##8: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##8: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode9 : ∀i2.MODE_IMM1EXT = i2 → eq_instrmode MODE_IMM1EXT i2 = true. +nlemma eq_to_eqim9 : ∀i2.MODE_IMM1EXT = i2 → eq_im MODE_IMM1EXT i2 = true. #t2; ncases t2; nnormalize; - ##[ ##9: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##9: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode10 : ∀i2.MODE_IMM2 = i2 → eq_instrmode MODE_IMM2 i2 = true. +nlemma eq_to_eqim10 : ∀i2.MODE_IMM2 = i2 → eq_im MODE_IMM2 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##10: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##10: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode11 : ∀i2.MODE_DIR1 = i2 → eq_instrmode MODE_DIR1 i2 = true. +nlemma eq_to_eqim11 : ∀i2.MODE_DIR1 = i2 → eq_im MODE_DIR1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##11: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##11: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode12 : ∀i2.MODE_DIR2 = i2 → eq_instrmode MODE_DIR2 i2 = true. +nlemma eq_to_eqim12 : ∀i2.MODE_DIR2 = i2 → eq_im MODE_DIR2 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##12: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##12: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode13 : ∀i2.MODE_IX0 = i2 → eq_instrmode MODE_IX0 i2 = true. +nlemma eq_to_eqim13 : ∀i2.MODE_IX0 = i2 → eq_im MODE_IX0 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##13: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##13: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode14 : ∀i2.MODE_IX1 = i2 → eq_instrmode MODE_IX1 i2 = true. +nlemma eq_to_eqim14 : ∀i2.MODE_IX1 = i2 → eq_im MODE_IX1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##14: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##14: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode15 : ∀i2.MODE_IX2 = i2 → eq_instrmode MODE_IX2 i2 = true. +nlemma eq_to_eqim15 : ∀i2.MODE_IX2 = i2 → eq_im MODE_IX2 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##15: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##15: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode16 : ∀i2.MODE_SP1 = i2 → eq_instrmode MODE_SP1 i2 = true. +nlemma eq_to_eqim16 : ∀i2.MODE_SP1 = i2 → eq_im MODE_SP1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##16: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##16: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode17 : ∀i2.MODE_SP2 = i2 → eq_instrmode MODE_SP2 i2 = true. +nlemma eq_to_eqim17 : ∀i2.MODE_SP2 = i2 → eq_im MODE_SP2 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##17: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##17: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode18 : ∀i2.MODE_DIR1_to_DIR1 = i2 → eq_instrmode MODE_DIR1_to_DIR1 i2 = true. +nlemma eq_to_eqim18 : ∀i2.MODE_DIR1_to_DIR1 = i2 → eq_im MODE_DIR1_to_DIR1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##18: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##18: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode19 : ∀i2.MODE_IMM1_to_DIR1 = i2 → eq_instrmode MODE_IMM1_to_DIR1 i2 = true. +nlemma eq_to_eqim19 : ∀i2.MODE_IMM1_to_DIR1 = i2 → eq_im MODE_IMM1_to_DIR1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##19: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##19: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode20 : ∀i2.MODE_IX0p_to_DIR1 = i2 → eq_instrmode MODE_IX0p_to_DIR1 i2 = true. +nlemma eq_to_eqim20 : ∀i2.MODE_IX0p_to_DIR1 = i2 → eq_im MODE_IX0p_to_DIR1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##20: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##20: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode21 : ∀i2.MODE_DIR1_to_IX0p = i2 → eq_instrmode MODE_DIR1_to_IX0p i2 = true. +nlemma eq_to_eqim21 : ∀i2.MODE_DIR1_to_IX0p = i2 → eq_im MODE_DIR1_to_IX0p i2 = true. #t2; ncases t2; nnormalize; - ##[ ##21: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##21: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode22 : ∀i2.MODE_INHA_and_IMM1 = i2 → eq_instrmode MODE_INHA_and_IMM1 i2 = true. +nlemma eq_to_eqim22 : ∀i2.MODE_INHA_and_IMM1 = i2 → eq_im MODE_INHA_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##22: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##22: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode23 : ∀i2.MODE_INHX_and_IMM1 = i2 → eq_instrmode MODE_INHX_and_IMM1 i2 = true. +nlemma eq_to_eqim23 : ∀i2.MODE_INHX_and_IMM1 = i2 → eq_im MODE_INHX_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##23: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##23: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode24 : ∀i2.MODE_IMM1_and_IMM1 = i2 → eq_instrmode MODE_IMM1_and_IMM1 i2 = true. +nlemma eq_to_eqim24 : ∀i2.MODE_IMM1_and_IMM1 = i2 → eq_im MODE_IMM1_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##24: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##24: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode25 : ∀i2.MODE_DIR1_and_IMM1 = i2 → eq_instrmode MODE_DIR1_and_IMM1 i2 = true. +nlemma eq_to_eqim25 : ∀i2.MODE_DIR1_and_IMM1 = i2 → eq_im MODE_DIR1_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##25: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##25: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode26 : ∀i2.MODE_IX0_and_IMM1 = i2 → eq_instrmode MODE_IX0_and_IMM1 i2 = true. +nlemma eq_to_eqim26 : ∀i2.MODE_IX0_and_IMM1 = i2 → eq_im MODE_IX0_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##26: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##26: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode27 : ∀i2.MODE_IX0p_and_IMM1 = i2 → eq_instrmode MODE_IX0p_and_IMM1 i2 = true. +nlemma eq_to_eqim27 : ∀i2.MODE_IX0p_and_IMM1 = i2 → eq_im MODE_IX0p_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##27: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##27: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode28 : ∀i2.MODE_IX1_and_IMM1 = i2 → eq_instrmode MODE_IX1_and_IMM1 i2 = true. +nlemma eq_to_eqim28 : ∀i2.MODE_IX1_and_IMM1 = i2 → eq_im MODE_IX1_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##28: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##28: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode29 : ∀i2.MODE_IX1p_and_IMM1 = i2 → eq_instrmode MODE_IX1p_and_IMM1 i2 = true. +nlemma eq_to_eqim29 : ∀i2.MODE_IX1p_and_IMM1 = i2 → eq_im MODE_IX1p_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##29: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##29: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode30 : ∀i2.MODE_SP1_and_IMM1 = i2 → eq_instrmode MODE_SP1_and_IMM1 i2 = true. +nlemma eq_to_eqim30 : ∀i2.MODE_SP1_and_IMM1 = i2 → eq_im MODE_SP1_and_IMM1 i2 = true. #t2; ncases t2; nnormalize; - ##[ ##30: #H; napply (refl_eq ??) - ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct ??? H) - ##| ##*: #H; napply (instr_mode_destruct ??? H) + ##[ ##30: #H; napply refl_eq + ##| ##31,32,33,34: #n; #H; napply (instr_mode_destruct … H) + ##| ##*: #H; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode31 : ∀n1,i2.MODE_DIRn n1 = i2 → eq_instrmode (MODE_DIRn n1) i2 = true. +nlemma eq_to_eqim31 : ∀n1,i2.MODE_DIRn n1 = i2 → eq_im (MODE_DIRn n1) i2 = true. #n1; #t2; ncases t2; ##[ ##31: #n2; #H; nchange with (eq_oct n1 n2 = true); - nrewrite > (instr_mode_destruct_MODE_DIRn ?? H); - nrewrite > (eq_to_eqoct n2 n2 (refl_eq ??)); - napply (refl_eq ??) - ##| ##32,33,34: #n; #H; nnormalize; napply (instr_mode_destruct ??? H) - ##| ##*: #H; nnormalize; napply (instr_mode_destruct ??? H) + nrewrite > (instr_mode_destruct_MODE_DIRn … H); + nrewrite > (eq_to_eqoct n2 n2 (refl_eq …)); + napply refl_eq + ##| ##32,33,34: #n; #H; nnormalize; napply (instr_mode_destruct … H) + ##| ##*: #H; nnormalize; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode32 : ∀n1,i2.MODE_DIRn_and_IMM1 n1 = i2 → eq_instrmode (MODE_DIRn_and_IMM1 n1) i2 = true. +nlemma eq_to_eqim32 : ∀n1,i2.MODE_DIRn_and_IMM1 n1 = i2 → eq_im (MODE_DIRn_and_IMM1 n1) i2 = true. #n1; #t2; ncases t2; ##[ ##32: #n2; #H; nchange with (eq_oct n1 n2 = true); - nrewrite > (instr_mode_destruct_MODE_DIRn_and_IMM1 ?? H); - nrewrite > (eq_to_eqoct n2 n2 (refl_eq ??)); - napply (refl_eq ??) - ##| ##31,33,34: #n; #H; nnormalize; napply (instr_mode_destruct ??? H) - ##| ##*: #H; nnormalize; napply (instr_mode_destruct ??? H) + nrewrite > (instr_mode_destruct_MODE_DIRn_and_IMM1 … H); + nrewrite > (eq_to_eqoct n2 n2 (refl_eq …)); + napply refl_eq + ##| ##31,33,34: #n; #H; nnormalize; napply (instr_mode_destruct … H) + ##| ##*: #H; nnormalize; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode33 : ∀n1,i2.MODE_TNY n1 = i2 → eq_instrmode (MODE_TNY n1) i2 = true. +nlemma eq_to_eqim33 : ∀n1,i2.MODE_TNY n1 = i2 → eq_im (MODE_TNY n1) i2 = true. #n1; #t2; ncases t2; ##[ ##33: #n2; #H; nchange with (eq_ex n1 n2 = true); - nrewrite > (instr_mode_destruct_MODE_TNY ?? H); - nrewrite > (eq_to_eqex n2 n2 (refl_eq ??)); - napply (refl_eq ??) - ##| ##31,32,34: #n; #H; nnormalize; napply (instr_mode_destruct ??? H) - ##| ##*: #H; nnormalize; napply (instr_mode_destruct ??? H) + nrewrite > (instr_mode_destruct_MODE_TNY … H); + nrewrite > (eq_to_eqex n2 n2 (refl_eq …)); + napply refl_eq + ##| ##31,32,34: #n; #H; nnormalize; napply (instr_mode_destruct … H) + ##| ##*: #H; nnormalize; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode34 : ∀n1,i2.MODE_SRT n1 = i2 → eq_instrmode (MODE_SRT n1) i2 = true. +nlemma eq_to_eqim34 : ∀n1,i2.MODE_SRT n1 = i2 → eq_im (MODE_SRT n1) i2 = true. #n1; #t2; ncases t2; ##[ ##34: #n2; #H; - nchange with (eq_bitrig n1 n2 = true); - nrewrite > (instr_mode_destruct_MODE_SRT ?? H); - nrewrite > (eq_to_eqbitrig n2 n2 (refl_eq ??)); - napply (refl_eq ??) - ##| ##31,32,33: #n; #H; nnormalize; napply (instr_mode_destruct ??? H) - ##| ##*: #H; nnormalize; napply (instr_mode_destruct ??? H) + nchange with (eq_bit n1 n2 = true); + nrewrite > (instr_mode_destruct_MODE_SRT … H); + nrewrite > (eq_to_eqbit n2 n2 (refl_eq …)); + napply refl_eq + ##| ##31,32,33: #n; #H; nnormalize; napply (instr_mode_destruct … H) + ##| ##*: #H; nnormalize; napply (instr_mode_destruct … H) ##] nqed. -nlemma eq_to_eqinstrmode : ∀i1,i2.i1 = i2 → eq_instrmode i1 i2 = true. +nlemma eq_to_eqim : ∀i1,i2.i1 = i2 → eq_im i1 i2 = true. #i1; ncases i1; - ##[ ##1: napply eq_to_eqinstrmode1 ##| ##2: napply eq_to_eqinstrmode2 - ##| ##3: napply eq_to_eqinstrmode3 ##| ##4: napply eq_to_eqinstrmode4 - ##| ##5: napply eq_to_eqinstrmode5 ##| ##6: napply eq_to_eqinstrmode6 - ##| ##7: napply eq_to_eqinstrmode7 ##| ##8: napply eq_to_eqinstrmode8 - ##| ##9: napply eq_to_eqinstrmode9 ##| ##10: napply eq_to_eqinstrmode10 - ##| ##11: napply eq_to_eqinstrmode11 ##| ##12: napply eq_to_eqinstrmode12 - ##| ##13: napply eq_to_eqinstrmode13 ##| ##14: napply eq_to_eqinstrmode14 - ##| ##15: napply eq_to_eqinstrmode15 ##| ##16: napply eq_to_eqinstrmode16 - ##| ##17: napply eq_to_eqinstrmode17 ##| ##18: napply eq_to_eqinstrmode18 - ##| ##19: napply eq_to_eqinstrmode19 ##| ##20: napply eq_to_eqinstrmode20 - ##| ##21: napply eq_to_eqinstrmode21 ##| ##22: napply eq_to_eqinstrmode22 - ##| ##23: napply eq_to_eqinstrmode23 ##| ##24: napply eq_to_eqinstrmode24 - ##| ##25: napply eq_to_eqinstrmode25 ##| ##26: napply eq_to_eqinstrmode26 - ##| ##27: napply eq_to_eqinstrmode27 ##| ##28: napply eq_to_eqinstrmode28 - ##| ##29: napply eq_to_eqinstrmode29 ##| ##30: napply eq_to_eqinstrmode30 - ##| ##31: napply eq_to_eqinstrmode31 ##| ##32: napply eq_to_eqinstrmode32 - ##| ##33: napply eq_to_eqinstrmode33 ##| ##34: napply eq_to_eqinstrmode34 + ##[ ##1: napply eq_to_eqim1 ##| ##2: napply eq_to_eqim2 + ##| ##3: napply eq_to_eqim3 ##| ##4: napply eq_to_eqim4 + ##| ##5: napply eq_to_eqim5 ##| ##6: napply eq_to_eqim6 + ##| ##7: napply eq_to_eqim7 ##| ##8: napply eq_to_eqim8 + ##| ##9: napply eq_to_eqim9 ##| ##10: napply eq_to_eqim10 + ##| ##11: napply eq_to_eqim11 ##| ##12: napply eq_to_eqim12 + ##| ##13: napply eq_to_eqim13 ##| ##14: napply eq_to_eqim14 + ##| ##15: napply eq_to_eqim15 ##| ##16: napply eq_to_eqim16 + ##| ##17: napply eq_to_eqim17 ##| ##18: napply eq_to_eqim18 + ##| ##19: napply eq_to_eqim19 ##| ##20: napply eq_to_eqim20 + ##| ##21: napply eq_to_eqim21 ##| ##22: napply eq_to_eqim22 + ##| ##23: napply eq_to_eqim23 ##| ##24: napply eq_to_eqim24 + ##| ##25: napply eq_to_eqim25 ##| ##26: napply eq_to_eqim26 + ##| ##27: napply eq_to_eqim27 ##| ##28: napply eq_to_eqim28 + ##| ##29: napply eq_to_eqim29 ##| ##30: napply eq_to_eqim30 + ##| ##31: napply eq_to_eqim31 ##| ##32: napply eq_to_eqim32 + ##| ##33: napply eq_to_eqim33 ##| ##34: napply eq_to_eqim34 ##] nqed.