Theorem: FOL.NV.Sub.Var.One.Ind.substitution_is_valid (FOL/NV/Sub/Var/One/Ind/Sub.lean)

State before:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : F.IsValid
⊢ F'.IsValid
Tactic:
simp only [IsValid] at h2
State after:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
⊢ F'.IsValid

State before:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
⊢ F'.IsValid
Tactic:
simp only [IsValid]
State after:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
⊢ ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F'

State before:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
⊢ ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F'
Tactic:
intro D I V E
State after:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
⊢ Holds D I V E F'

State before:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
⊢ Holds D I V E F'
Tactic:
simp only [← substitution_theorem D I V E v t F F' h1]
State after:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
⊢ Holds D I (Function.updateITE V v (V t)) E F

State before:
v t : VarName
F F' : Formula
h1 : IsSub F v t F'
h2 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
⊢ Holds D I (Function.updateITE V v (V t)) E F
Tactic:
apply h2
State after:
no goals