intro g g_in
case h.right
W : Type
L R : List Formula
M : KripkeModel W
w : W
ress : List (List Formula × Option NegLoadFormula)
χ : LoadFormula
lrule : LoadRule (~'χ) ress
this :
  ¬evaluate M w (unload χ) ↔
    ∃ f, (∃ a b, (a, b) ∈ ress ∧ Con (a ++ (Option.map negUnload b).toList) = f) ∧ evaluate M w f
hyp : ∀ (f : Formula), (f ∈ L ∨ f ∈ R) ∨ (~unload χ) = f → evaluate M w f
f : Formula
w_f : evaluate M w f
X : List Formula
val : NegLoadFormula
in_ress : (X, some val) ∈ ress
def_f : Con (X ++ (Option.map negUnload (some val)).toList) = f
⊢ (M, w)⊨(L ++ X, R, some (Sum.inl val))
case h.right
W : Type
L R : List Formula
M : KripkeModel W
w : W
ress : List (List Formula × Option NegLoadFormula)
χ : LoadFormula
lrule : LoadRule (~'χ) ress
this :
  ¬evaluate M w (unload χ) ↔
    ∃ f, (∃ a b, (a, b) ∈ ress ∧ Con (a ++ (Option.map negUnload b).toList) = f) ∧ evaluate M w f
hyp : ∀ (f : Formula), (f ∈ L ∨ f ∈ R) ∨ (~unload χ) = f → evaluate M w f
f : Formula
w_f : evaluate M w f
X : List Formula
val : NegLoadFormula
in_ress : (X, some val) ∈ ress
def_f : Con (X ++ (Option.map negUnload (some val)).toList) = f
g : Formula
g_in : g ∈ L ++ X ∪ R ∪ (Option.map (Sum.elim negUnload negUnload) (some (Sum.inl val))).toList
⊢ evaluate M w g