Theorem: LO.FirstOrder.Semiformula.val_fvUnivClosure (Logic/FirstOrder/Basic/Semantics/Semantics.lean)

State before:
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p
Tactic:
by_cases hμ : Nonempty μ
State after:
case pos
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ : Nonempty μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p

case neg
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ : ¬Nonempty μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p

State before:
case pos
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ : Nonempty μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p
Tactic:
exact val_fvUnivClosure_inhabited
State after:
no goals

State before:
case neg
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ : ¬Nonempty μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p
Tactic:
haveI hμ : IsEmpty μ := not_nonempty_iff.mp hμ
State after:
case neg
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ✝ : ¬Nonempty μ
hμ : IsEmpty μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p

State before:
case neg
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ✝ : ¬Nonempty μ
hμ : IsEmpty μ
⊢ (Evalf s Empty.elim) (∀ᶠ* p) ↔ ∀ (ε : μ → M), (Evalf s ε) p
Tactic:
simp [Formula.fvUnivClosure_sentence p, IsEmpty.eq_elim]
State after:
case neg
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ✝ : ¬Nonempty μ
hμ : IsEmpty μ
⊢ (Eval s Fin.isEmpty'.elim' hμ.elim') p ↔ (Evalf s hμ.elim') p

State before:
case neg
n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
n : ℕ
e : Fin n → M
e₂ : Fin n₂ → M
ε : μ → M
ε₂ : μ₂ → M
inst✝¹ : Nonempty M
inst✝ : DecidableEq μ
p : Formula L μ
hμ✝ : ¬Nonempty μ
hμ : IsEmpty μ
⊢ (Eval s Fin.isEmpty'.elim' hμ.elim') p ↔ (Evalf s hμ.elim') p
Tactic:
simp [Matrix.empty_eq]
State after:
no goals