Section HENKIN.
#[local] Infix "=~=" := is_similar_to : type_scope.
Context {L : language}.
#[local] Notation L' := (augmented_language L Henkin_constants).
#[local] Notation hatom := (ivar + Henkin_constants)%type.
#[local] Notation hsubst := (hatom -> trm L').
#[local] Existing Instance constant_symbols_sim.
#[local] Existing Instance trm_sim.
#[local] Existing Instance trms_sim.
#[local] Existing Instance frm_sim.
#[local] Existing Instance frms_sim.
#[local] Opaque Nat.mul Nat.div "mod".

Lemma proves_hsubstitutivity (sigma : hsubst) (Gamma : ensemble (frm L')) (p : frm L')
(PROVE : Gamma ⊢ p)
: E.image (hsubst_frm sigma) Gamma ⊢ hsubst_frm sigma p.