.
.
.
.
.
.
.
.
.
.
).
Proof.
).
Proof.
).
Proof.
).
Proof.
).
Proof.
).
Proof.
)))).
Proof.
).
Proof.
Opaque fresh_var.
unfold nnrcmr_well_formed.
intros Hvars_loc mr.
unfold nnrcmr_of_nnrc_with_free_vars.
intros Hmr.
admit.
destruct (List.fold_right *) (fun (x : var) (oacc : option (list (var * dlocalization))) => *) olift *) (fun loc : dlocalization => *) lift *) (fun acc : list (var * dlocalization) => (x, loc) :: acc) *) oacc) (lookup equiv_dec vars_loc x)) *) (Some nil) (bdistinct (nnrc_free_vars n))); *) [ | apply in_nil in Hmr; *) contradiction ]. *) simpl in Hmr. *) apply in_app_or in Hmr. *) inversion Hmr; clear Hmr. *) - Case "pack_closure_env"%string. *) admit. *) *) *) - Case "final_mr"%string. *) simpl in H. *) inversion H; try contradiction; clear H. *) rewrite <- H0; clear H0. *) unfold mr_well_formed. *) simpl. *) repeat split. *) + apply coll_function_no_free_vars. *) + intros f Hf. *) simpl in *. *) apply unpack_closure_env_free_vars in Hf; *) try solve [ apply bdistinct_same_elemts ]. *) rewrite (Hvars_loc f) in Hf. *)
rewrite Hfree_vars_of_n in Hf. *) assert (bminus (bdistinct (nnrc_free_vars n)) (bdistinct (nnrc_free_vars n)) = nil) as Hbminus; *) try solve [ apply bminus_self ]. *) rewrite Hbminus in Hf; clear Hbminus. *) apply in_inv in Hf. *) destruct Hf; try contradiction. *) rewrite <- H. *) reflexivity. *) Admitted.
).
Proof.
intros Hfree_vars_of_n Havoid Hfv Houtput. *) unfold nnrcmr_of_nnrc_with_free_vars. *) unfold nnrcmr_eval. *) rewrite fold_left_app. *) simpl. *) admit.
Admitted.
)).
Proof.
.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
.
Proof.
).
Proof.
).
Proof.