proposition: Lemma embed_approx : forall n (c : C), approx n c = approx n (embed (approx n c)).
proof: Proof. move=> n c. destruct (approx_embed (approx n c)). rewrite -{1}H. f_equal. Theorem approximately : forall (c : C) (P : C -> Prop) (n : nat) (t : T), t = approx n c -> P (embed t) -> P c. Proof. move=> c ? n t Heqe H. rewrite Heqe in H. rewrite embed_approx in H. have H0 := approx_embed t. destruct H0. rewrite Heqe -(approx_inj n c (embed _)) // in H. exact: embed_approx. Qed.
imports: Hask.Prelude