Theorem: FOL.NV.Sub.Pred.All.Rec.Option.Fresh.substitution_is_valid (FOL/NV/Sub/Pred/All/Rec/Option/Fresh/Sub.lean)

State before:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : F.IsValid
⊢ (sub c τ F).IsValid
Tactic:
simp only [IsValid] at h1
State after:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
⊢ (sub c τ F).IsValid

State before:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (D : Type) (I : Interpretation D) (V : VarAssignment D) (E : Env), Holds D I V E F
⊢ (sub c τ F).IsValid
Tactic:
simp only [IsValid]
State after:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (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 (sub c τ F)

State before:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (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 (sub c τ F)
Tactic:
intro D I V E
State after:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (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 (sub c τ F)

State before:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (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 (sub c τ F)
Tactic:
simp only [← substitution_theorem]
State after:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (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' D I V E τ) V E F

State before:
c : Char
τ : PredName → ℕ → Option (List VarName × Formula)
F : Formula
h1 : ∀ (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' D I V E τ) V E F
Tactic:
apply h1
State after:
no goals