definition checkb_id_map ≝ λd.λmap:aux_map_type d.λname:aux_str_type.
match get_id_map_aux d map name with [ None ⇒ false | Some _ ⇒ true ].
-lemma checkbidmap_to_checkidmap : ∀d.∀map:aux_map_type d.∀name.checkb_id_map d map name = true → check_id_map d map name.
+lemma checkbidmap_to_checkidmap :
+ ∀d.∀map:aux_map_type d.∀name.
+ checkb_id_map d map name = true → check_id_map d map name.
unfold checkb_id_map;
unfold check_id_map;
intros 3;
definition checknotb_id_map ≝ λd.λmap:aux_map_type d.λname:aux_str_type.
match get_id_map_aux d map name with [ None ⇒ true | Some _ ⇒ false ].
-lemma checknotbidmap_to_checknotidmap : ∀d.∀map:aux_map_type d.∀name.checknotb_id_map d map name = true → checknot_id_map d map name.
+lemma checknotbidmap_to_checknotidmap :
+ ∀d.∀map:aux_map_type d.∀name.
+ checknotb_id_map d map name = true → checknot_id_map d map name.
unfold checknotb_id_map;
unfold checknot_id_map;
intros 3;
definition checkb_desc_flatEnv ≝ λfe:aux_flatEnv_type.λstr:aux_strId_type.
match get_desc_flatEnv_aux fe str with [ None ⇒ false | Some _ ⇒ true ].
-lemma checkbdescflatenv_to_checkdescflatenv : ∀fe,str.checkb_desc_flatEnv fe str = true → check_desc_flatEnv fe str.
+lemma checkbdescflatenv_to_checkdescflatenv :
+ ∀fe,str.checkb_desc_flatEnv fe str = true → check_desc_flatEnv fe str.
unfold checkb_desc_flatEnv;
unfold check_desc_flatEnv;
intros 2;
definition checknotb_desc_flatEnv ≝ λfe:aux_flatEnv_type.λstr:aux_strId_type.
match get_desc_flatEnv_aux fe str with [ None ⇒ true | Some _ ⇒ false ].
-lemma checknotbdescflatenv_to_checknotdescflatenv : ∀fe,str.checknotb_desc_flatEnv fe str = true → checknot_desc_flatEnv fe str.
+lemma checknotbdescflatenv_to_checknotdescflatenv :
+ ∀fe,str.checknotb_desc_flatEnv fe str = true → checknot_desc_flatEnv fe str.
unfold checknotb_desc_flatEnv;
unfold checknot_desc_flatEnv;
intros 2;
[ split;
[ rewrite < (checkenvmapalign_to_enter ???);
apply (proj1 ?? (proj1 ?? (proj1 ?? (proj1 ?? (H str (checkdescenter_to_checkdesc ??? H1))))))
- | (* TO DO !!! *) elim daemon;
+ | (* TO DO !!! *) elim daemon
]
| unfold check_id_map;
rewrite > (getidmap_to_enter ???);
(add_desc_env_flatEnv_fe d (fst ?? x) (snd ?? x) (fst3T ??? h) (snd3T ??? h) (thd3T ??? h))))
].
-(* TO DO !!! *)
-axiom env_map_flatEnv_add_aux :
+lemma env_map_flatEnv_add_aux :
∀d.∀e:aux_env_type d.∀map:aux_map_type d.∀fe.∀trsf.
env_to_flatEnv_inv d e map fe →
env_to_flatEnv_inv d
(build_trasfEnv_env d trsf e)
(fst ?? (build_trasfEnv_mapFe d trsf (pair ?? map fe)))
(snd ?? (build_trasfEnv_mapFe d trsf (pair ?? map fe))).
+ (* TO DO !!! *) elim daemon.
+qed.
lemma env_map_flatEnv_addNil_aux :
∀d.∀e:aux_env_type d.∀map:aux_map_type d.∀fe.
reflexivity.
qed.
-(* TO DO !!! *)
-axiom env_map_flatEnv_leave_aux :
+lemma env_map_flatEnv_leave_aux :
∀d.∀e:aux_env_type (S d).∀map:aux_map_type (S d).∀fe.∀trsf.
env_to_flatEnv_inv (S d) (build_trasfEnv_env (S d) trsf e) map fe →
env_to_flatEnv_inv d (leave_env d (build_trasfEnv_env (S d) trsf e)) (leave_map d map) fe.
+ (* TO DO !!! *) elim daemon.
+qed.
lemma newid_from_init :
∀d.∀e:aux_env_type d.∀name,const,desc.