apply ImpI;apply AndI;(eapply prov_impl;[eassumption|]);
[eapply AndE1|eapply AndE2];(eapply prov_impl;[apply CNF_and_prov|is_ass]).
apply ImpI;eapply prov_impl.
apply ImpI;eapply prov_or;try eassumption;in_solve.
eapply prov_impl;[apply CNF_or_prov|is_ass].
Qed.
(**Proof that (NNF A) → A is provable *)

(* Specifications: *)
Lemma prov_and : forall A1 A2 B1 B2 Γ, Provable (A1 → A2) -> Provable (B1 → B2) -> In (A1∧B1) Γ -> Γ ⊢ A2∧B2.
intros; prov_impl_in H;prov_impl_in H0. apply AndI;[apply K;eapply AndE1|apply K0;eapply AndE2];is_ass.