(* \langle \rangle *)
notation "〈x,y〉" non associative with precedence 80
for @{ 'mk_byte8 $x $y }.
-interpretation "mk_byte8" 'mk_byte8 x y =
- (cic:/matita/freescale/byte8/byte8.ind#xpointer(1/1/1) x y).
+interpretation "mk_byte8" 'mk_byte8 x y = (mk_byte8 x y).
(* operatore = *)
definition eq_b8 ≝ λb1,b2:byte8.(eq_ex (b8h b1) (b8h b2)) ⊗ (eq_ex (b8l b1) (b8l b2)).
(* byte → naturali *)
definition nat_of_byte8 ≝ λb:byte8.16*(b8h b) + (b8l b).
-coercion cic:/matita/freescale/byte8/nat_of_byte8.con.
+coercion nat_of_byte8.
(* naturali → byte *)
definition byte8_of_nat ≝ λn.mk_byte8 (exadecim_of_nat (n/16)) (exadecim_of_nat n).
generalize in match (plusb8_ok b1 b2 false);
elim (plus_b8 b1 b2 false);
simplify in H ⊢ %;
- change with (nat_of_byte8 t = (b1 + b2) \mod 256);
+ change with (nat_of_byte8 a = (b1 + b2) \mod 256);
rewrite < plus_n_O in H;
rewrite > H; clear H;
rewrite > mod_plus;
- letin K ≝ (eq_nat_of_byte8_mod t); clearbody K;
- letin K' ≝ (eq_mod_times_n_m_m_O (nat_of_bool t1) 256 ?); clearbody K';
+ letin K ≝ (eq_nat_of_byte8_mod a); clearbody K;
+ letin K' ≝ (eq_mod_times_n_m_m_O (nat_of_bool b) 256 ?); clearbody K';
[ autobatch | ];
autobatch paramodulation.
qed.