(**************************************************************************)
(* ********************************************************************** *)
-(* Progetto FreeScale *)
+(* Progetto FreeScale *)
(* *)
-(* Sviluppato da: *)
-(* Cosimo Oliboni, oliboni@cs.unibo.it *)
+(* Sviluppato da: Cosimo Oliboni, oliboni@cs.unibo.it *)
+(* Cosimo Oliboni, oliboni@cs.unibo.it *)
(* *)
-(* Questo materiale fa parte della tesi: *)
-(* "Formalizzazione Interattiva dei Microcontroller a 8bit FreeScale" *)
-(* *)
-(* data ultima modifica 15/11/2007 *)
(* ********************************************************************** *)
include "freescale/bool_lemmas.ma".
nchange with (match Some T x2 with [ None ⇒ False | Some a ⇒ x1 = a ]);
nrewrite < H;
nnormalize;
- napply (refl_eq ??).
+ napply refl_eq.
nqed.
nlemma option_destruct_some_none : ∀T.∀x:T.Some T x = None T → False.
(symmetricT T bool f) →
(eq_option T op1 op2 f = eq_option T op2 op1 f).
#T; #op1; #op2; #f; #H;
- napply (option_ind T ??? op1);
- napply (option_ind T ??? op2);
+ nelim op1;
+ nelim op2;
nnormalize;
- ##[ ##1: napply (refl_eq ??)
- ##| ##2,3: #H; napply (refl_eq ??)
+ ##[ ##1: napply refl_eq
+ ##| ##2,3: #H; napply refl_eq
##| ##4: #a; #a0;
nrewrite > (H a0 a);
- napply (refl_eq ??)
+ napply refl_eq
##]
nqed.
(∀x1,x2:T.x1 = x2 → f x1 x2 = true) →
(op1 = op2 → eq_option T op1 op2 f = true).
#T; #op1; #op2; #f; #H;
- napply (option_ind T ??? op1);
- napply (option_ind T ??? op2);
+ nelim op1;
+ nelim op2;
nnormalize;
- ##[ ##1: #H1; napply (refl_eq ??)
+ ##[ ##1: #H1; napply refl_eq
##| ##2: #a; #H1; nelim (option_destruct_none_some ?? H1)
##| ##3: #a; #H1; nelim (option_destruct_some_none ?? H1)
##| ##4: #a; #a0; #H1;
- nrewrite > (option_destruct_some_some ??? H1);
- nrewrite > (H a a (refl_eq ??));
- napply (refl_eq ??)
+ nrewrite > (option_destruct_some_some … H1);
+ nrewrite > (H a a (refl_eq …));
+ napply refl_eq
##]
nqed.
(∀x1,x2:T.f x1 x2 = true → x1 = x2) →
(eq_option T op1 op2 f = true → op1 = op2).
#T; #op1; #op2; #f; #H;
- napply (option_ind T ??? op1);
- napply (option_ind T ??? op2);
+ nelim op1;
+ nelim op2;
nnormalize;
- ##[ ##1: #H1; napply (refl_eq ??)
- ##| ##2,3: #a; #H1; napply (bool_destruct ??? H1)
+ ##[ ##1: #H1; napply refl_eq
+ ##| ##2,3: #a; #H1; napply (bool_destruct … H1)
##| ##4: #a; #a0; #H1;
- nrewrite > (H ?? H1);
- napply (refl_eq ??)
+ nrewrite > (H … H1);
+ napply refl_eq
##]
nqed.