Theorem: LO.FirstOrder.Semiformula.eval_univClosure (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
n' : ℕ
e' : Fin 0 → M
p : Semiformula L μ n'
⊢ (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
Tactic:
induction' n' with n' ih generalizing e' <;> simp [*, eq_finZeroElim, univClosure_succ]
State after:
case succ
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
⊢ (∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p) ↔ ∀ (e : Fin (n' + 1) → M), (Eval s e ε) p

State before:
case succ
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
⊢ (∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p) ↔ ∀ (e : Fin (n' + 1) → M), (Eval s e ε) p
Tactic:
constructor
State after:
case succ.mp
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
⊢ (∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p) → ∀ (e : Fin (n' + 1) → M), (Eval s e ε) p

case succ.mpr
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
⊢ (∀ (e : Fin (n' + 1) → M), (Eval s e ε) p) → ∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p

State before:
case succ.mp
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
⊢ (∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p) → ∀ (e : Fin (n' + 1) → M), (Eval s e ε) p
Tactic:
intro h e
State after:
case succ.mp
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
h : ∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p
e : Fin (n' + 1) → M
⊢ (Eval s e ε) p

State before:
case succ.mp
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
h : ∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p
e : Fin (n' + 1) → M
⊢ (Eval s e ε) p
Tactic:
simpa using h (Matrix.vecTail e) (Matrix.vecHead e)
State after:
no goals

State before:
case succ.mpr
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
⊢ (∀ (e : Fin (n' + 1) → M), (Eval s e ε) p) → ∀ (e : Fin n' → M) (x : M), (Eval s (x :> e) ε) p
Tactic:
intro h e x
State after:
case succ.mpr
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
h : ∀ (e : Fin (n' + 1) → M), (Eval s e ε) p
e : Fin n' → M
x : M
⊢ (Eval s (x :> e) ε) p

State before:
case succ.mpr
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
n' : ℕ
ih : ∀ {e' : Fin 0 → M} {p : Semiformula L μ n'}, (Eval s e' ε) (∀* p) ↔ ∀ (e : Fin n' → M), (Eval s e ε) p
e' : Fin 0 → M
p : Semiformula L μ (n' + 1)
h : ∀ (e : Fin (n' + 1) → M), (Eval s e ε) p
e : Fin n' → M
x : M
⊢ (Eval s (x :> e) ε) p
Tactic:
exact h (x :> e)
State after:
no goals