use Fs, ε
case h.left
ψ : Formula
W : Type
M : KripkeModel W
w : W
α β : Program
Fs : List Formula
Fδ_in : (Fs, ε) ∈ H α
w_Con : evaluate M w (Con (Yset (Fs, ε) (⌈β⌉ψ)))
Gs : List Formula
γ : List Program
Gsγ_in : (Gs, γ) ∈ H β
claim : evaluate M w (Con (Yset (Gs, γ) ψ))
⊢ ∃ a b,
    (a, b) ∈ H α ∧
      (if b = ε then (List.map (fun x => [(a ∪ x.1, x.2)]) (H β)).join else [(a, b ++ [β])]) =
        (List.map (fun x => [(Fs ∪ x.1, x.2)]) (H β)).join
case h
ψ : Formula
W : Type
M : KripkeModel W
w : W
α β : Program
Fs : List Formula
Fδ_in : (Fs, ε) ∈ H α
w_Con : evaluate M w (Con (Yset (Fs, ε) (⌈β⌉ψ)))
Gs : List Formula
γ : List Program
Gsγ_in : (Gs, γ) ∈ H β
claim : evaluate M w (Con (Yset (Gs, γ) ψ))
⊢ (Fs, ε) ∈ H α ∧
    (if ε = ε then (List.map (fun x => [(Fs ∪ x.1, x.2)]) (H β)).join else [(Fs, ε ++ [β])]) =
      (List.map (fun x => [(Fs ∪ x.1, x.2)]) (H β)).join