(* ********************************************************************** *)
include "utility/ascii.ma".
-include "utility/utility.ma".
+include "freescale/theory.ma".
+include "freescale/nat.ma".
(* ************************ *)
(* MANIPOLAZIONE DI STRINGA *)
(* tipo pubblico *)
ndefinition aux_str_type ≝ list ascii.
-(* empty string *)
-ndefinition empty_str ≝ nil ascii.
-
-(* is empty ? *)
-ndefinition isNull_str ≝
-λstr:aux_str_type.match str with
- [ nil ⇒ true | cons _ _ ⇒ false ].
-
(* strcmp *)
nlet rec eq_str (str,str':aux_str_type) ≝
match str with
]
].
-(* strcat *)
-ndefinition strCat_str ≝
-λstr,str':aux_str_type.str@str'.
-
-(* strlen *)
-ndefinition strLen_str ≝ len_list ascii.
-
(* ************ *)
(* STRINGA + ID *)
(* ************ *)
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 ].
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 ].