Section ALPHA.
Let EMPTY_INTRO (ps : list (frm L)) : E.fromList ps \subseteq E.empty -> ps = [] :=
match ps with
| [] => fun _ => eq_refl
| p :: ps => fun SUBSET =>
match SUBSET p (or_introl eq_refl) with
end
end.
End ALPHA.
#[global]
Add Parametric Morphism
: proves with signature (eqProp ==> alpha_equiv ==> iff) as proves_alpha_comm.

Lemma rebind_All_frm_bwd (Gamma : ensemble (frm L)) (x : ivar) (x' : ivar) (p : frm L)
(FRESH : is_not_free_in_frm x' (All_frm x p))
: Gamma \proves Imp_frm (All_frm x' (subst_frm (one_subst x (Var_trm x')) p)) (All_frm x p).