simp only [Holds]
D : Type
I : Interpretation D
M : MetaValuation D
E : Env
Γ : List (VarName × MetaVarName)
v : VarName
h2 : ∀ (X : MetaVarName), (v, X) ∈ Γ → IsNotFree D I M E (meta_var_ X) v
phi psi : Formula
phi_ih :
  NotFree Γ v phi → ∀ (V : Valuation D) (d : D), Holds D I V M E phi ↔ Holds D I (Function.updateITE V v d) M E phi
psi_ih :
  NotFree Γ v psi → ∀ (V : Valuation D) (d : D), Holds D I V M E psi ↔ Holds D I (Function.updateITE V v d) M E psi
h1 : NotFree Γ v phi ∧ NotFree Γ v psi
V : Valuation D
d : D
⊢ Holds D I V M E (phi.imp_ psi) ↔ Holds D I (Function.updateITE V v d) M E (phi.imp_ psi)
D : Type
I : Interpretation D
M : MetaValuation D
E : Env
Γ : List (VarName × MetaVarName)
v : VarName
h2 : ∀ (X : MetaVarName), (v, X) ∈ Γ → IsNotFree D I M E (meta_var_ X) v
phi psi : Formula
phi_ih :
  NotFree Γ v phi → ∀ (V : Valuation D) (d : D), Holds D I V M E phi ↔ Holds D I (Function.updateITE V v d) M E phi
psi_ih :
  NotFree Γ v psi → ∀ (V : Valuation D) (d : D), Holds D I V M E psi ↔ Holds D I (Function.updateITE V v d) M E psi
h1 : NotFree Γ v phi ∧ NotFree Γ v psi
V : Valuation D
d : D
⊢ Holds D I V M E phi → Holds D I V M E psi ↔
    Holds D I (Function.updateITE V v d) M E phi → Holds D I (Function.updateITE V v d) M E psi