λd.λe:aux_env_type d.λmap:aux_map_type d.λfe:aux_flatEnv_type.
∀str.
check_desc_env d e str →
- (((check_env_map_align d e d map)⊗(check_map_env_align d e map)) = true ∧
+ check_env_map_align d e d map = true ∧ check_map_env_align d e map = true ∧
check_id_map d map str ∧
check_desc_flatEnv fe (STR_ID str (get_id_map d map str)) ∧
- get_desc_env d e str = get_desc_flatEnv fe (STR_ID str (get_id_map d map str))).
+ get_desc_env d e str = get_desc_flatEnv fe (STR_ID str (get_id_map d map str)).
lemma inv_to_checkdescflatenv :
∀d.∀e:aux_env_type d.∀map:aux_map_type d.∀fe.
].
(* avanzamento dell'invariante *)
-axiom env_map_flatEnv_enter_aux :
+lemma env_map_flatEnv_enter_aux :
∀d.∀e:aux_env_type d.∀map:aux_map_type d.∀fe.
env_to_flatEnv_inv d e map fe →
env_to_flatEnv_inv (S d) (enter_env d e) (enter_map d map) fe.
+ unfold env_to_flatEnv_inv;
+ intros;
+ split; [ split [ split [ split | ] | ] | ]
+ [ elim daemon
+ | elim daemon;
+ | elim daemon;
+ | elim daemon;
+ | elim daemon;
+ ]
+qed.
axiom env_map_flatEnv_add_aux :
∀d.∀e:aux_env_type d.∀map:aux_map_type d.∀fe.∀trsf.