Theorem: disconOr (Bml/bigConDis.lean)

State before:
XS YS : List (List Formula)
⊢ discon (XS ∪ YS)≡discon XS⋁discon YS
Tactic:
unfold semEquiv
State after:
XS YS : List (List Formula)
⊢ ∀ (W : Type) (M : KripkeModel W) (w : W), Evaluate (M, w) (discon (XS ∪ YS)) ↔ Evaluate (M, w) (discon XS⋁discon YS)

State before:
XS YS : List (List Formula)
⊢ ∀ (W : Type) (M : KripkeModel W) (w : W), Evaluate (M, w) (discon (XS ∪ YS)) ↔ Evaluate (M, w) (discon XS⋁discon YS)
Tactic:
intro W M w
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ Evaluate (M, w) (discon (XS ∪ YS)) ↔ Evaluate (M, w) (discon XS⋁discon YS)

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ Evaluate (M, w) (discon (XS ∪ YS)) ↔ Evaluate (M, w) (discon XS⋁discon YS)
Tactic:
rw [disconEval (XS ∪ YS) (by rfl)]
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y ∈ XS ∪ YS, ∀ f ∈ Y, Evaluate (M, w) f) ↔ Evaluate (M, w) (discon XS⋁discon YS)

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y ∈ XS ∪ YS, ∀ f ∈ Y, Evaluate (M, w) f) ↔ Evaluate (M, w) (discon XS⋁discon YS)
Tactic:
simp
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) ↔ ¬Evaluate (M, w) (discon XS) → Evaluate (M, w) (discon YS)

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) ↔ ¬Evaluate (M, w) (discon XS) → Evaluate (M, w) (discon YS)
Tactic:
rw [disconEval XS (by rfl)]
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) ↔
    (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → Evaluate (M, w) (discon YS)

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) ↔
    (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → Evaluate (M, w) (discon YS)
Tactic:
rw [disconEval YS (by rfl)]
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) ↔
    (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) ↔
    (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
constructor
State after:
case mp
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) →
    (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

case mpr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ ((¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f) →
    ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (XS ∪ YS).length = ?m.132146
Tactic:
rfl
State after:
no goals

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ XS.length = ?m.136078
Tactic:
rfl
State after:
no goals

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ YS.length = ?m.136108
Tactic:
rfl
State after:
no goals

State before:
case mp
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ (∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f) →
    (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
intro lhs
State after:
case mp
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
lhs : ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
⊢ (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
case mp
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
lhs : ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
⊢ (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
rcases lhs with ⟨Z, Z_in, w_sat_Z⟩
State after:
case mp.intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in : Z ∈ XS ∨ Z ∈ YS
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
⊢ (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
case mp.intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in : Z ∈ XS ∨ Z ∈ YS
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
⊢ (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
intro notL
State after:
case mp.intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in : Z ∈ XS ∨ Z ∈ YS
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
case mp.intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in : Z ∈ XS ∨ Z ∈ YS
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
simp at notL
State after:
case mp.intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in : Z ∈ XS ∨ Z ∈ YS
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
case mp.intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in : Z ∈ XS ∨ Z ∈ YS
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
cases Z_in
State after:
case mp.intro.intro.inl
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
h✝ : Z ∈ XS
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

case mp.intro.intro.inr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
h✝ : Z ∈ YS
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
Z_in_XS : Z ∈ XS
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
case inl Z_in_XS =>
  specialize notL Z Z_in_XS
  rcases notL with ⟨f, f_in_Z, w_not_f⟩
  specialize w_sat_Z f f_in_Z
  absurd w_sat_Z
  exact w_not_f
State after:
no goals

State before:
case mp.intro.intro.inr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
h✝ : Z ∈ YS
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
use Z
State after:
no goals

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
notL : ∀ x ∈ XS, ∃ x_1 ∈ x, ¬Evaluate (M, w) x_1
Z_in_XS : Z ∈ XS
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
specialize notL Z Z_in_XS
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
Z_in_XS : Z ∈ XS
notL : ∃ x ∈ Z, ¬Evaluate (M, w) x
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
Z_in_XS : Z ∈ XS
notL : ∃ x ∈ Z, ¬Evaluate (M, w) x
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
rcases notL with ⟨f, f_in_Z, w_not_f⟩
State after:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
Z_in_XS : Z ∈ XS
f : Formula
f_in_Z : f ∈ Z
w_not_f : ¬Evaluate (M, w) f
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
w_sat_Z : ∀ f ∈ Z, Evaluate (M, w) f
Z_in_XS : Z ∈ XS
f : Formula
f_in_Z : f ∈ Z
w_not_f : ¬Evaluate (M, w) f
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
specialize w_sat_Z f f_in_Z
State after:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in_XS : Z ∈ XS
f : Formula
f_in_Z : f ∈ Z
w_not_f : ¬Evaluate (M, w) f
w_sat_Z : Evaluate (M, w) f
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f

State before:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in_XS : Z ∈ XS
f : Formula
f_in_Z : f ∈ Z
w_not_f : ¬Evaluate (M, w) f
w_sat_Z : Evaluate (M, w) f
⊢ ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
absurd w_sat_Z
State after:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in_XS : Z ∈ XS
f : Formula
f_in_Z : f ∈ Z
w_not_f : ¬Evaluate (M, w) f
w_sat_Z : Evaluate (M, w) f
⊢ ¬Evaluate (M, w) f

State before:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
Z : List Formula
Z_in_XS : Z ∈ XS
f : Formula
f_in_Z : f ∈ Z
w_not_f : ¬Evaluate (M, w) f
w_sat_Z : Evaluate (M, w) f
⊢ ¬Evaluate (M, w) f
Tactic:
exact w_not_f
State after:
no goals

State before:
case mpr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
⊢ ((¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f) →
    ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
intro rhs
State after:
case mpr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
case mpr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
cases em (∃ Y, Y ∈ XS ∧ ∀ (f : Formula), f ∈ Y → Evaluate (M, w) f)
State after:
case mpr.inl
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
h✝ : ∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

case mpr.inr
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
h✝ : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
hyp : ∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
case inl hyp =>
  rcases hyp with ⟨X, X_in, satX⟩
  use X
  exact ⟨Or.inl X_in, satX⟩
State after:
no goals

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
case inr nothyp =>
  specialize rhs nothyp
  rcases rhs with ⟨Y, Y_in, satY⟩
  use Y
  exact ⟨Or.inr Y_in, satY⟩
State after:
no goals

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
hyp : ∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
rcases hyp with ⟨X, X_in, satX⟩
State after:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
X : List Formula
X_in : X ∈ XS
satX : ∀ f ∈ X, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
X : List Formula
X_in : X ∈ XS
satX : ∀ f ∈ X, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
use X
State after:
case h
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
X : List Formula
X_in : X ∈ XS
satX : ∀ f ∈ X, Evaluate (M, w) f
⊢ (X ∈ XS ∨ X ∈ YS) ∧ ∀ f ∈ X, Evaluate (M, w) f

State before:
case h
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
X : List Formula
X_in : X ∈ XS
satX : ∀ f ∈ X, Evaluate (M, w) f
⊢ (X ∈ XS ∨ X ∈ YS) ∧ ∀ f ∈ X, Evaluate (M, w) f
Tactic:
exact ⟨Or.inl X_in, satX⟩
State after:
no goals

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
rhs : (¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f) → ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
specialize rhs nothyp
State after:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
rhs : ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
rhs : ∃ Y ∈ YS, ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
rcases rhs with ⟨Y, Y_in, satY⟩
State after:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
Y : List Formula
Y_in : Y ∈ YS
satY : ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
case intro.intro
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
Y : List Formula
Y_in : Y ∈ YS
satY : ∀ f ∈ Y, Evaluate (M, w) f
⊢ ∃ Y, (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
use Y
State after:
case h
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
Y : List Formula
Y_in : Y ∈ YS
satY : ∀ f ∈ Y, Evaluate (M, w) f
⊢ (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f

State before:
case h
XS YS : List (List Formula)
W : Type
M : KripkeModel W
w : W
nothyp : ¬∃ Y ∈ XS, ∀ f ∈ Y, Evaluate (M, w) f
Y : List Formula
Y_in : Y ∈ YS
satY : ∀ f ∈ Y, Evaluate (M, w) f
⊢ (Y ∈ XS ∨ Y ∈ YS) ∧ ∀ f ∈ Y, Evaluate (M, w) f
Tactic:
exact ⟨Or.inr Y_in, satY⟩
State after:
no goals