]> matita.cs.unibo.it Git - helm.git/commitdiff
1) PTS simplified
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 22 Jul 2009 15:10:50 +0000 (15:10 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 22 Jul 2009 15:10:50 +0000 (15:10 +0000)
2) several eliminiation principles and projections are now automatically generated

helm/software/matita/contribs/ng_assembly/freescale/bool_lemmas.ma
helm/software/matita/contribs/ng_assembly/freescale/byte8.ma
helm/software/matita/contribs/ng_assembly/freescale/option.ma
helm/software/matita/contribs/ng_assembly/freescale/pts.ma
helm/software/matita/contribs/ng_assembly/freescale/word16.ma
helm/software/matita/contribs/ng_assembly/freescale/word32.ma
helm/software/matita/contribs/ng_assembly/utility/ascii.ma
helm/software/matita/contribs/ng_assembly/utility/ascii_lemmas1.ma
helm/software/matita/contribs/ng_assembly/utility/string.ma
helm/software/matita/contribs/ng_assembly/utility/utility.ma

index 7d60068626139b3d103f667e4586911c3364d5b2..87a166d174de033e6d9806077f323830e551481b 100755 (executable)
@@ -40,13 +40,13 @@ ndefinition bool_destruct : bool_destruct_aux.
  nelim b2;
  nnormalize;
  #H;
- ##[ ##2: napply (False_ind (λx.P) ?);
+ ##[ ##2: napply (False_ind (λx.?) ?);
           (* perche' non napply (False_ind ??); !!! *)
           nchange with (match true with [ true ⇒ False | false ⇒ True]);
           nrewrite > H;
           nnormalize;
           napply I
- ##| ##3: napply (False_ind (λx.P) ?);
+ ##| ##3: napply (False_ind (λx.?) ?);
           (* perche' non napply (False_ind ??); !!! *)
           nchange with (match true with [ true ⇒ False | false ⇒ True]);
           nrewrite < H;
index ce90687036e61a6fda259a53386cc4094fbe5643..ed4a47ea3d0f79e4abef19763c856320f34da29b 100755 (executable)
@@ -32,7 +32,7 @@ nrecord byte8 : Type ≝
  b8l: exadecim
  }.
 
-ndefinition byte8_ind : ΠP:byte8 → Prop.(Πe:exadecim.Πe1:exadecim.P (mk_byte8 e e1)) → Πb:byte8.P b ≝
+(*ndefinition byte8_ind : ΠP:byte8 → Prop.(Πe:exadecim.Πe1:exadecim.P (mk_byte8 e e1)) → Πb:byte8.P b ≝
 λP:byte8 → Prop.λf:Πe:exadecim.Πe1:exadecim.P (mk_byte8 e e1).λb:byte8.
  match b with [ mk_byte8 (e:exadecim) (e1:exadecim) ⇒ f e e1 ].
 
@@ -45,7 +45,7 @@ ndefinition byte8_rect : ΠP:byte8 → Type.(Πe:exadecim.Πe1:exadecim.P (mk_by
  match b with [ mk_byte8 (e:exadecim) (e1:exadecim) ⇒ f e e1 ].
 
 ndefinition b8h ≝ λb:byte8.match b with [ mk_byte8 x _ ⇒ x ].
-ndefinition b8l ≝ λb:byte8.match b with [ mk_byte8 _ x ⇒ x ].
+ndefinition b8l ≝ λb:byte8.match b with [ mk_byte8 _ x ⇒ x ].*)
 
 (* \langle \rangle *)
 notation "〈x,y〉" non associative with precedence 80
index bcd66d441fe24b34c72ef5c4fdc168a4924e06c2..4c7a9abb426595bde0c74bcd0a32b3dab785d10c 100644 (file)
@@ -30,7 +30,7 @@ ninductive option (A:Type) : Type ≝
   None : option A
 | Some : A → option A.
 
-ndefinition option_ind : ΠA:Type.ΠP:option A → Prop.P (None A) → (Πa:A.P (Some A a)) → Πop:option A.P op ≝
+(*ndefinition option_ind : ΠA:Type.ΠP:option A → Prop.P (None A) → (Πa:A.P (Some A a)) → Πop:option A.P op ≝
 λA:Type.λP:option A → Prop.λp:P (None A).λf:Πa:A.P (Some A a).λop:option A.
  match op with [ None ⇒ p | Some (a:A) ⇒ f a ].
 
@@ -40,7 +40,7 @@ ndefinition option_rec : ΠA:Type.ΠP:option A → Set.P (None A) → (Πa:A.P (
 
 ndefinition option_rect : ΠA:Type.ΠP:option A → Type.P (None A) → (Πa:A.P (Some A a)) → Πop:option A.P op ≝
 λA:Type.λP:option A → Type.λp:P (None A).λf:Πa:A.P (Some A a).λop:option A.
- match op with [ None ⇒ p | Some (a:A) ⇒ f a ].
+ match op with [ None ⇒ p | Some (a:A) ⇒ f a ].*)
 
 ndefinition eq_option ≝
 λT.λop1,op2:option T.λf:T → T → bool.
index 8b57df6032b47e7ee0dbefc127e749920a763251..1b00cc1243773b9c420cef60196300bf9671a908 100644 (file)
 (*                                                                        *)
 (* ********************************************************************** *)
 
-universe constraint Type[0] < Type[1].
-universe constraint Type[1] < Type[2].
-universe constraint CProp[0] < CProp[1].
-universe constraint Type[0] ≤ CProp[0].
-universe constraint CProp[0] ≤ Type[0].
-universe constraint Type[1] ≤ CProp[1].
-universe constraint CProp[1] ≤ Type[1].
-
+universe constraint Type[0] < Type[1].
\ No newline at end of file
index 90ebbe8ae23a4e8234d018982c6bbd112c82fae9..53d798b35114664e599021fb7c0521ee8e11c56b 100755 (executable)
@@ -32,7 +32,7 @@ nrecord word16 : Type ≝
  w16l: byte8
  }.
 
-ndefinition word16_ind : ΠP:word16 → Prop.(Πb:byte8.Πb1:byte8.P (mk_word16 b b1)) → Πw:word16.P w ≝
+(*ndefinition word16_ind : ΠP:word16 → Prop.(Πb:byte8.Πb1:byte8.P (mk_word16 b b1)) → Πw:word16.P w ≝
 λP:word16 → Prop.λf:Πb:byte8.Πb1:byte8.P (mk_word16 b b1).λw:word16.
  match w with [ mk_word16 (b:byte8) (b1:byte8) ⇒ f b b1 ].
 
@@ -45,7 +45,7 @@ ndefinition word16_rect : ΠP:word16 → Type.(Πb:byte8.Πb1:byte8.P (mk_word16
  match w with [ mk_word16 (b:byte8) (b1:byte8) ⇒ f b b1 ].
 
 ndefinition w16h ≝ λw:word16.match w with [ mk_word16 x _ ⇒ x ].
-ndefinition w16l ≝ λw:word16.match w with [ mk_word16 _ x ⇒ x ].
+ndefinition w16l ≝ λw:word16.match w with [ mk_word16 _ x ⇒ x ].*)
 
 (* \langle \rangle *)
 notation "〈x:y〉" non associative with precedence 80
index 886afc65cd72929893d3f039e6a1583b916c9519..2e0dd8bac54b6f8578ef738b5dbaf516c2c70c8b 100755 (executable)
@@ -32,7 +32,7 @@ nrecord word32 : Type ≝
  w32l: word16
  }.
 
-ndefinition word32_ind : ΠP:word32 → Prop.(Πw:word16.Πw1:word16.P (mk_word32 w w1)) → Πdw:word32.P dw ≝
+(*ndefinition word32_ind : ΠP:word32 → Prop.(Πw:word16.Πw1:word16.P (mk_word32 w w1)) → Πdw:word32.P dw ≝
 λP:word32 → Prop.λf:Πw:word16.Πw1:word16.P (mk_word32 w w1).λdw:word32.
  match dw with [ mk_word32 (w:word16) (w1:word16) ⇒ f w w1 ].
 
@@ -45,7 +45,7 @@ ndefinition word32_rect : ΠP:word32 → Type.(Πw:word16.Πw1:word16.P (mk_word
  match dw with [ mk_word32 (w:word16) (w1:word16) ⇒ f w w1 ].
 
 ndefinition w32h ≝ λdw:word32.match dw with [ mk_word32 x _ ⇒ x ].
-ndefinition w32l ≝ λdw:word32.match dw with [ mk_word32 _ x ⇒ x ].
+ndefinition w32l ≝ λdw:word32.match dw with [ mk_word32 _ x ⇒ x ].*)
 
 (* \langle \rangle *)
 notation "〈x.y〉" non associative with precedence 80
index 7a7d33793892f6b899610558b065c3fac1211405..35894f57059fb31b1356a4bb516efc2d0a04cae1 100755 (executable)
@@ -124,32 +124,6 @@ ndefinition ascii_ind
   | ch_l ⇒ p48 | ch_m ⇒ p49 | ch_n ⇒ p50 | ch_o ⇒ p51 | ch_p ⇒ p52 | ch_q ⇒ p53 | ch_r ⇒ p54 | ch_s ⇒ p55
   | ch_t ⇒ p56 | ch_u ⇒ p57 | ch_v ⇒ p58 | ch_w ⇒ p59 | ch_x ⇒ p60 | ch_y ⇒ p61 | ch_z ⇒ p62 ].
 
-ndefinition ascii_rec
- : ΠP:ascii → Set.
-   P ch_0 → P ch_1 → P ch_2 → P ch_3 → P ch_4 → P ch_5 → P ch_6 → P ch_7 → P ch_8 → P ch_9 → P ch__ →
-   P ch_A → P ch_B → P ch_C → P ch_D → P ch_E → P ch_F → P ch_G → P ch_H → P ch_I → P ch_J → P ch_K →
-   P ch_L → P ch_M → P ch_N → P ch_O → P ch_P → P ch_Q → P ch_R → P ch_S → P ch_T → P ch_U → P ch_V →
-   P ch_W → P ch_X → P ch_Y → P ch_Z → P ch_a → P ch_b → P ch_c → P ch_d → P ch_e → P ch_f → P ch_g →
-   P ch_h → P ch_i → P ch_j → P ch_k → P ch_l → P ch_m → P ch_n → P ch_o → P ch_p → P ch_q → P ch_r →
-   P ch_s → P ch_t → P ch_u → P ch_v → P ch_w → P ch_x → P ch_y → P ch_z → Πa:ascii.P a ≝
-λP:ascii → Set.
-λp:P ch_0.λp1:P ch_1.λp2:P ch_2.λp3:P ch_3.λp4:P ch_4.λp5:P ch_5.λp6:P ch_6.λp7:P ch_7.λp8:P ch_8.λp9:P ch_9.
-λp10:P ch__.λp11:P ch_A.λp12:P ch_B.λp13:P ch_C.λp14:P ch_D.λp15:P ch_E.λp16:P ch_F.λp17:P ch_G.λp18:P ch_H.
-λp19:P ch_I.λp20:P ch_J.λp21:P ch_K.λp22:P ch_L.λp23:P ch_M.λp24:P ch_N.λp25:P ch_O.λp26:P ch_P.λp27:P ch_Q.
-λp28:P ch_R.λp29:P ch_S.λp30:P ch_T.λp31:P ch_U.λp32:P ch_V.λp33:P ch_W.λp34:P ch_X.λp35:P ch_Y.λp36:P ch_Z.
-λp37:P ch_a.λp38:P ch_b.λp39:P ch_c.λp40:P ch_d.λp41:P ch_e.λp42:P ch_f.λp43:P ch_g.λp44:P ch_h.λp45:P ch_i.
-λp46:P ch_j.λp47:P ch_k.λp48:P ch_l.λp49:P ch_m.λp50:P ch_n.λp51:P ch_o.λp52:P ch_p.λp53:P ch_q.λp54:P ch_r.
-λp55:P ch_s.λp56:P ch_t.λp57:P ch_u.λp58:P ch_v.λp59:P ch_w.λp60:P ch_x.λp61:P ch_y.λp62:P ch_z.λa:ascii.
- match a with
-  [ ch_0 ⇒ p | ch_1 ⇒ p1 | ch_2 ⇒ p2 | ch_3 ⇒ p3 | ch_4 ⇒ p4 | ch_5 ⇒ p5 | ch_6 ⇒ p6 | ch_7 ⇒ p7
-  | ch_8 ⇒ p8 | ch_9 ⇒ p9 | ch__ ⇒ p10 | ch_A ⇒ p11 | ch_B ⇒ p12 | ch_C ⇒ p13 | ch_D ⇒ p14 | ch_E ⇒ p15
-  | ch_F ⇒ p16 | ch_G ⇒ p17 | ch_H ⇒ p18 | ch_I ⇒ p19 | ch_J ⇒ p20 | ch_K ⇒ p21 | ch_L ⇒ p22 | ch_M ⇒ p23
-  | ch_N ⇒ p24 | ch_O ⇒ p25 | ch_P ⇒ p26 | ch_Q ⇒ p27 | ch_R ⇒ p28 | ch_S ⇒ p29 | ch_T ⇒ p30 | ch_U ⇒ p31
-  | ch_V ⇒ p32 | ch_W ⇒ p33 | ch_X ⇒ p34 | ch_Y ⇒ p35 | ch_Z ⇒ p36 | ch_a ⇒ p37 | ch_b ⇒ p38 | ch_c ⇒ p39
-  | ch_d ⇒ p40 | ch_e ⇒ p41 | ch_f ⇒ p42 | ch_g ⇒ p43 | ch_h ⇒ p44 | ch_i ⇒ p45 | ch_j ⇒ p46 | ch_k ⇒ p47
-  | ch_l ⇒ p48 | ch_m ⇒ p49 | ch_n ⇒ p50 | ch_o ⇒ p51 | ch_p ⇒ p52 | ch_q ⇒ p53 | ch_r ⇒ p54 | ch_s ⇒ p55
-  | ch_t ⇒ p56 | ch_u ⇒ p57 | ch_v ⇒ p58 | ch_w ⇒ p59 | ch_x ⇒ p60 | ch_y ⇒ p61 | ch_z ⇒ p62 ].
-
 ndefinition ascii_rect
  : ΠP:ascii → Type.
    P ch_0 → P ch_1 → P ch_2 → P ch_3 → P ch_4 → P ch_5 → P ch_6 → P ch_7 → P ch_8 → P ch_9 → P ch__ →
index 4c371c1bebf10df099845b30231f0ab800083841..efab13f9dc46e62f566600069002f2f53488ea53 100755 (executable)
@@ -30,7 +30,7 @@ include "freescale/theory.ma".
 ndefinition ascii_destruct1 : Πc2.ΠP:Prop.ch_0 = c2 → match c2 with [ ch_0 ⇒ P → P | _ ⇒ P ].
  #c2; #P; ncases c2; nnormalize;
  ##[ ##1: #H; napply (λx:P.x)
- ##| ##*: #H; napply (False_ind ??); nchange with (match ch_0 with [ ch_0 ⇒ False | _ ⇒ True ]); nrewrite > H; nnormalize; napply I
+ ##| ##*: #H; napply (False_ind (λ_.?) ?); nchange with (match ch_0 with [ ch_0 ⇒ False | _ ⇒ True ]); nrewrite > H; nnormalize; napply I
  ##]
 nqed.
 
index d2a55290124d6b60ac9ba2a317c6daf21f1aca62..ea1c1ccd145b9e21d50a6ecb82b2f957eb5f53e0 100644 (file)
@@ -51,7 +51,7 @@ nlet rec eq_str (str,str':aux_str_type) ≝
 ninductive aux_strId_type : Type ≝
  STR_ID: aux_str_type → nat → aux_strId_type.
 
-ndefinition aux_strId_type_ind : ΠP:aux_strId_type → Prop.(Πl,n.P (STR_ID l n)) → Πa:aux_strId_type.P a ≝
+(*ndefinition aux_strId_type_ind : ΠP:aux_strId_type → Prop.(Πl,n.P (STR_ID l n)) → Πa:aux_strId_type.P a ≝
 λP:aux_strId_type → Prop.λf:Πl,n.P (STR_ID l n).λa:aux_strId_type.
  match a with [ STR_ID l n ⇒ f l n ].
 
@@ -61,7 +61,7 @@ ndefinition aux_strId_type_rec : ΠP:aux_strId_type → Set.(Πl,n.P (STR_ID l n
 
 ndefinition aux_strId_type_rect : ΠP:aux_strId_type → Type.(Πl,n.P (STR_ID l n)) → Πa:aux_strId_type.P a ≝
 λP:aux_strId_type → Type.λf:Πl,n.P (STR_ID l n).λa:aux_strId_type.
- match a with [ STR_ID l n ⇒ f l n ].
+ match a with [ STR_ID l n ⇒ f l n ].*)
 
 (* getter *)
 ndefinition get_name_strId ≝ λsid:aux_strId_type.match sid with [ STR_ID n _ ⇒ n ].
index 2f8362b3719125b1ab8d8755433e0920d35473d4..69d88e8cbe55389b93a4b90c5d665a714554db9b 100755 (executable)
@@ -33,14 +33,14 @@ ninductive ne_list (A:Type) : Type ≝
   | ne_nil: A → ne_list A
   | ne_cons: A → ne_list A → ne_list A.
 
-nlet rec ne_list_ind (A:Type) (P:ne_list A → Prop) (f:Πd.P (ne_nil A d)) (f1:(Πa:A.Πl':ne_list A.P l' → P (ne_cons A a l'))) (l:ne_list A) on l ≝
+(*nlet rec ne_list_ind (A:Type) (P:ne_list A → Prop) (f:Πd.P (ne_nil A d)) (f1:(Πa:A.Πl':ne_list A.P l' → P (ne_cons A a l'))) (l:ne_list A) on l ≝
  match l with [ ne_nil d ⇒ f d | ne_cons h t ⇒ f1 h t (ne_list_ind A P f f1 t) ].
 
 nlet rec ne_list_rec (A:Type) (P:ne_list A → Set) (f:Πd.P (ne_nil A d)) (f1:(Πa:A.Πl':ne_list A.P l' → P (ne_cons A a l'))) (l:ne_list A) on l ≝
  match l with [ ne_nil d ⇒ f d | ne_cons h t ⇒ f1 h t (ne_list_rec A P f f1 t) ].
 
 nlet rec ne_list_rect (A:Type) (P:ne_list A → Type) (f:Πd.P (ne_nil A d)) (f1:(Πa:A.Πl':ne_list A.P l' → P (ne_cons A a l'))) (l:ne_list A) on l ≝
- match l with [ ne_nil d ⇒ f d | ne_cons h t ⇒ f1 h t (ne_list_rect A P f f1 t) ].
+ match l with [ ne_nil d ⇒ f d | ne_cons h t ⇒ f1 h t (ne_list_rect A P f f1 t) ].*)
 
 (* append *)
 nlet rec ne_append (A:Type) (l1,l2:ne_list A) on l1 ≝
@@ -104,7 +104,7 @@ ndefinition list_to_neList ≝
  match l
   return λl:list T.isnot_empty_list T l → ne_list T
  with
-  [ nil ⇒ λp:isnot_empty_list T (nil T).False_rect ? p
+  [ nil ⇒ λp:isnot_empty_list T (nil T).False_rect_Type0 ? p
   | cons h t ⇒ λp:isnot_empty_list T (cons T h t).
    match list_to_neList_aux T t with
     [ None ⇒ «£h»
@@ -260,11 +260,11 @@ nlet rec fold_right_list2 (T1,T2:Type) (f:T1 → T1 → T2 → T2) (acc:T2) (l1:
   [ nil ⇒ λl2.match l2 return λl2.len_list T1 [] = len_list T1 l2 → T2 with
    [ nil ⇒ λp:len_list T1 [] = len_list T1 [].acc
    | cons h t ⇒ λp:len_list T1 [] = len_list T1 (h::t).
-    False_rect ? (fold_right_list2_aux1 T1 h t p)
+    False_rect_Type0 ? (fold_right_list2_aux1 T1 h t p)
    ]
   | cons h t ⇒ λl2.match l2 return λl2.len_list T1 (h::t) = len_list T1 l2 → T2 with
    [ nil ⇒ λp:len_list T1 (h::t) = len_list T1 [].
-    False_rect ? (fold_right_list2_aux2 T1 h t p)
+    False_rect_Type0 ? (fold_right_list2_aux2 T1 h t p)
    | cons h' t' ⇒ λp:len_list T1 (h::t) = len_list T1 (h'::t').
     f h h' (fold_right_list2 T1 T2 f acc t t' (fold_right_list2_aux3 T1 h h' t t' p))
    ]
@@ -321,11 +321,11 @@ nlet rec fold_right_neList2 (T1,T2:Type) (f:T1 → T1 → T2 → T2) (acc:T2) (l
    [ ne_nil h' ⇒ λp:len_neList T1 «£h» = len_neList T1 «£h'».
     f h h' acc
    | ne_cons h' t' ⇒ λp:len_neList T1 «£h» = len_neList T1 (h'§§t').
-    False_rect ? (fold_right_neList2_aux1 T1 h h' t' p)
+    False_rect_Type0 ? (fold_right_neList2_aux1 T1 h h' t' p)
    ]
   | ne_cons h t ⇒ λl2.match l2 return λl2.len_neList T1 (h§§t) = len_neList T1 l2 → T2 with
    [ ne_nil h' ⇒ λp:len_neList T1 (h§§t) = len_neList T1 «£h'».
-    False_rect ? (fold_right_neList2_aux2 T1 h h' t p)
+    False_rect_Type0 ? (fold_right_neList2_aux2 T1 h h' t p)
    | ne_cons h' t' ⇒ λp:len_neList T1 (h§§t) = len_neList T1 (h'§§t').
     f h h' (fold_right_neList2 T1 T2 f acc t t' (fold_right_neList2_aux3 T1 h h' t t' p))
    ]