Documentation

Foundation.FirstOrder.Basic.Operator

def LO.FirstOrder.Semiterm.Operator.operator {L : Language} {ξ : Type u_2} {n arity : } (o : Operator L arity) (v : Fin aritySemiterm L ξ n) :
Semiterm L ξ n
Equations
@[reducible, inline]
abbrev LO.FirstOrder.Semiterm.Operator.const {L : Language} {ξ : Type u_2} {n : } (c : Const L) :
Semiterm L ξ n
Equations
def LO.FirstOrder.Semiterm.Operator.comp {L : Language} {k l : } (o : Operator L k) (w : Fin kOperator L l) :
Equations
  • o.comp w = { term := o.operator fun (x : Fin k) => (w x).term }
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.operator_comp {L : Language} {k l : } {ξ : Type u_1} {n : } (o : Operator L k) (w : Fin kOperator L l) (v : Fin lSemiterm L ξ n) :
(o.comp w).operator v = o.operator fun (x : Fin k) => (w x).operator v
theorem LO.FirstOrder.Semiterm.Operator.operator_bvar {L : Language} {k : } {ξ : Type u_1} {n : } (x : Fin k) (v : Fin kSemiterm L ξ n) :
(bvar x).operator v = v x
theorem LO.FirstOrder.Semiterm.Operator.bv_operator {L : Language} {ξ : Type u_1} {n k : } (o : Operator L k) (v : Fin kSemiterm L ξ (n + 1)) :
(o.operator v).bv = o.term.bv.biUnion fun (i : Fin k) => (v i).bv
theorem LO.FirstOrder.Semiterm.Operator.positive_operator_iff {L : Language} {ξ : Type u_1} {n k : } {o : Operator L k} {v : Fin kSemiterm L ξ (n + 1)} :
(o.operator v).Positive io.term.bv, (v i).Positive
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.positive_const {L : Language} {ξ : Type u_1} {n : } (c : Const L) :
(↑c).Positive
def LO.FirstOrder.Semiterm.Operator.foldr {L : Language} {k : } (f : Operator L 2) (z : Operator L k) :
List (Operator L k)Operator L k
Equations
  • f.foldr z [] = z
  • f.foldr z (o :: os) = f.comp ![f.foldr z os, o]
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.foldr_nil {L : Language} {k : } (f : Operator L 2) (z : Operator L k) :
f.foldr z [] = z
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.operator_foldr_cons {L : Language} {k : } {ξ : Type u_1} {n : } (f : Operator L 2) (z o : Operator L k) (os : List (Operator L k)) (v : Fin kSemiterm L ξ n) :
(f.foldr z (o :: os)).operator v = f.operator ![(f.foldr z os).operator v, o.operator v]
Equations
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.iterr_zero {L : Language} (f : Operator L 2) (z : Const L) :
f.iterr z 0 = z
theorem LO.FirstOrder.Semiterm.Operator.numeral_succ {L : Language} [hz : Operator.Zero L] [ho : Operator.One L] [ha : Operator.Add L] {z : } :
z 0numeral L (z + 1) = op(+).comp ![numeral L z, op(1)]
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.Add.positive_iff {L : Language} {ξ : Type u_1} {n : } [L.Add] (t u : Semiterm L ξ (n + 1)) :
(op(+).operator ![t, u]).Positive t.Positive u.Positive
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.Mul.positive_iff {L : Language} {ξ : Type u_1} {n : } [L.Mul] (t u : Semiterm L ξ (n + 1)) :
(op(*).operator ![t, u]).Positive t.Positive u.Positive
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.Exp.positive_iff {L : Language} {ξ : Type u_1} {n : } [L.Exp] (t : Semiterm L ξ (n + 1)) :
(exp.operator ![t]).Positive t.Positive
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.npow_positive_iff {L : Language} {ξ : Type u_1} {n : } [Operator.One L] [L.Mul] (t : Semiterm L ξ (n + 1)) (k : ) :
((npow L k).operator ![t]).Positive k = 0 t.Positive
@[simp]
theorem LO.FirstOrder.Semiterm.complexity_zero {L : Language} {ξ : Type u_1} {n : } [L.Zero] :
(↑op(0)).complexity = 1
@[simp]
theorem LO.FirstOrder.Semiterm.complexity_one {L : Language} {ξ : Type u_1} {n : } [L.One] :
(↑op(1)).complexity = 1
@[simp]
theorem LO.FirstOrder.Semiterm.complexity_add {L : Language} {ξ : Type u_1} {n : } [L.Add] (t u : Semiterm L ξ n) :
(op(+).operator ![t, u]).complexity = t.complexity u.complexity + 1
@[simp]
theorem LO.FirstOrder.Semiterm.complexity_mul {L : Language} {ξ : Type u_1} {n : } [L.Mul] (t u : Semiterm L ξ n) :
(op(*).operator ![t, u]).complexity = t.complexity u.complexity + 1
def LO.FirstOrder.Semiterm.Operator.val {L : Language} {k : } {M : Type w} [s : Structure L M] (o : Operator L k) (v : Fin kM) :
M
Equations
theorem LO.FirstOrder.Semiterm.val_operator {L : Language} {M : Type w} {s : Structure L M} {n✝ : } {e : Fin n✝M} {ξ✝ : Type u_1} {ε : ξ✝M} {k : } (o : Operator L k) (v : Fin kSemiterm L ξ✝ n✝) :
val s e ε (o.operator v) = o.val fun (x : Fin k) => val s e ε (v x)
@[simp]
theorem LO.FirstOrder.Semiterm.val_const {L : Language} {M : Type w} {s : Structure L M} {n✝ : } {e : Fin n✝M} {ξ✝ : Type u_1} {ε : ξ✝M} (o : Const L) :
val s e ε o = Operator.val o ![]
@[simp]
theorem LO.FirstOrder.Semiterm.val_operator₀ {L : Language} {M : Type w} {s : Structure L M} {n✝ : } {e : Fin n✝M} {ξ✝ : Type u_1} {ε : ξ✝M} {v : Fin 0Semiterm L ξ✝ n✝} (o : Const L) :
val s e ε (Operator.operator o v) = Operator.val o ![]
@[simp]
theorem LO.FirstOrder.Semiterm.val_operator₁ {L : Language} {M : Type w} {s : Structure L M} {n✝ : } {e : Fin n✝M} {ξ✝ : Type u_1} {ε : ξ✝M} {t : Semiterm L ξ✝ n✝} (o : Operator L 1) :
val s e ε (o.operator ![t]) = o.val ![val s e ε t]
@[simp]
theorem LO.FirstOrder.Semiterm.val_operator₂ {L : Language} {M : Type w} {s : Structure L M} {n✝ : } {e : Fin n✝M} {ξ✝ : Type u_1} {ε : ξ✝M} (o : Operator L 2) (t u : Semiterm L ξ✝ n✝) :
val s e ε (o.operator ![t, u]) = o.val ![val s e ε t, val s e ε u]
theorem LO.FirstOrder.Semiterm.Operator.val_comp {L : Language} {M : Type w} {s : Structure L M} {k m : } (o₁ : Operator L k) (o₂ : Fin kOperator L m) (v : Fin mM) :
(o₁.comp o₂).val v = o₁.val fun (i : Fin k) => (o₂ i).val v
@[simp]
theorem LO.FirstOrder.Semiterm.Operator.val_bvar {L : Language} {M : Type w} {s : Structure L M} {n : } (x : Fin n) (v : Fin nM) :
(bvar x).val v = v x
def LO.FirstOrder.Semiformula.Operator.operator {L : Language} {ξ : Type u_2} {n arity : } (o : Operator L arity) (v : Fin aritySemiterm L ξ n) :
Equations
  • o.operator v = o.sentence v
Equations
  • o.comp w = { sentence := o.operator fun (x : Fin k) => (w x).term }
theorem LO.FirstOrder.Semiformula.Operator.operator_comp {L : Language} {k l : } {ξ : Type u_1} {n : } (o : Operator L k) (w : Fin kSemiterm.Operator L l) (v : Fin lSemiterm L ξ n) :
(o.comp w).operator v = o.operator fun (x : Fin k) => (w x).operator v
Equations
  • o₁.and o₂ = { sentence := o₁.sentence o₂.sentence }
def LO.FirstOrder.Semiformula.Operator.or {L : Language} {k : } (o₁ o₂ : Operator L k) :
Equations
  • o₁.or o₂ = { sentence := o₁.sentence o₂.sentence }
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.operator_and {L : Language} {k : } {ξ : Type u_1} {n : } (o₁ o₂ : Operator L k) (v : Fin kSemiterm L ξ n) :
(o₁.and o₂).operator v = o₁.operator v o₂.operator v
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.operator_or {L : Language} {k : } {ξ : Type u_1} {n : } (o₁ o₂ : Operator L k) (v : Fin kSemiterm L ξ n) :
(o₁.or o₂).operator v = o₁.operator v o₂.operator v
theorem LO.FirstOrder.Semiformula.Operator.LE.sentence_eq {L : Language} [L.Eq] [L.LT] :
op(≤).sentence = op(=).sentence op(<).sentence
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.Eq.equal_inj {L : Language} {ξ₂ : Type u_1} {n₂ : } [L.Eq] {t₁ t₂ u₁ u₂ : Semiterm L ξ₂ n₂} :
op(=).operator ![t₁, u₁] = op(=).operator ![t₂, u₂] t₁ = t₂ u₁ = u₂
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.LT.lt_inj {L : Language} {ξ₂ : Type u_1} {n₂ : } [L.LT] {t₁ t₂ u₁ u₂ : Semiterm L ξ₂ n₂} :
op(<).operator ![t₁, u₁] = op(<).operator ![t₂, u₂] t₁ = t₂ u₁ = u₂
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.LE.le_inj {L : Language} {ξ₂ : Type u_1} {n₂ : } [L.Eq] [L.LT] {t₁ t₂ u₁ u₂ : Semiterm L ξ₂ n₂} :
op(≤).operator ![t₁, u₁] = op(≤).operator ![t₂, u₂] t₁ = t₂ u₁ = u₂
theorem LO.FirstOrder.Semiformula.Operator.lt_def {L : Language} {ξ : Type u_1} {n : } [L.LT] (t u : Semiterm L ξ n) :
op(<).operator ![t, u] = rel Language.LT.lt ![t, u]
theorem LO.FirstOrder.Semiformula.Operator.eq_def {L : Language} {ξ : Type u_1} {n : } [L.Eq] (t u : Semiterm L ξ n) :
op(=).operator ![t, u] = rel Language.Eq.eq ![t, u]
theorem LO.FirstOrder.Semiformula.Operator.le_def {L : Language} {ξ : Type u_1} {n : } [L.Eq] [L.LT] (t u : Semiterm L ξ n) :
op(≤).operator ![t, u] = rel Language.Eq.eq ![t, u] rel Language.LT.lt ![t, u]
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.Eq.open {L : Language} {ξ : Type u_1} {n : } [L.Eq] (t u : Semiterm L ξ n) :
(op(=).operator ![t, u]).Open
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.LT.open {L : Language} {ξ : Type u_1} {n : } [L.LT] (t u : Semiterm L ξ n) :
(op(<).operator ![t, u]).Open
@[simp]
theorem LO.FirstOrder.Semiformula.Operator.LE.open {L : Language} {ξ : Type u_1} {n : } [L.Eq] [L.LT] (t u : Semiterm L ξ n) :
(op(≤).operator ![t, u]).Open
def LO.FirstOrder.Semiformula.Operator.val {L : Language} {M : Type w} [s : Structure L M] {k : } (o : Operator L k) (v : Fin kM) :
Equations
@[simp]
theorem LO.FirstOrder.Semiformula.val_operator_and {L : Language} {M : Type w} {s : Structure L M} {k : } {o₁ o₂ : Operator L k} {v : Fin kM} :
(o₁.and o₂).val v o₁.val v o₂.val v
@[simp]
theorem LO.FirstOrder.Semiformula.val_operator_or {L : Language} {M : Type w} {s : Structure L M} {k : } {o₁ o₂ : Operator L k} {v : Fin kM} :
(o₁.or o₂).val v o₁.val v o₂.val v
theorem LO.FirstOrder.Semiformula.eval_operator {L : Language} {M : Type w} {s : Structure L M} {ξ : Type u_1} {n : } {e : Fin nM} {ε : ξM} {k : } {o : Operator L k} {v : Fin kSemiterm L ξ n} :
(Eval s e ε) (o.operator v) o.val fun (i : Fin k) => Semiterm.val s e ε (v i)
@[simp]
theorem LO.FirstOrder.Semiformula.eval_operator₀ {L : Language} {M : Type w} {s : Structure L M} {n✝ : } {e : Fin n✝M} {ξ✝ : Type u_1} {ε : ξ✝M} {o : Const L} {v : Fin 0Semiterm L ξ✝ n✝} :
(Eval s e ε) (Operator.operator o v) Operator.val o ![]
@[simp]
theorem LO.FirstOrder.Semiformula.eval_operator₁ {L : Language} {M : Type w} {s : Structure L M} {ξ : Type u_1} {n : } {e : Fin nM} {ε : ξM} {o : Operator L 1} {t : Semiterm L ξ n} :
(Eval s e ε) (o.operator ![t]) o.val ![Semiterm.val s e ε t]
@[simp]
theorem LO.FirstOrder.Semiformula.eval_operator₂ {L : Language} {M : Type w} {s : Structure L M} {ξ : Type u_1} {n : } {e : Fin nM} {ε : ξM} {o : Operator L 2} {t₁ t₂ : Semiterm L ξ n} :
(Eval s e ε) (o.operator ![t₁, t₂]) o.val ![Semiterm.val s e ε t₁, Semiterm.val s e ε t₂]
def LO.FirstOrder.Semiformula.ballLT {L : Language} {ξ : Type u_2} {n : } [Operator.LT L] (t : Semiterm L ξ n) (φ : Semiformula L ξ (n + 1)) :
Equations
def LO.FirstOrder.Semiformula.bexLT {L : Language} {ξ : Type u_2} {n : } [Operator.LT L] (t : Semiterm L ξ n) (φ : Semiformula L ξ (n + 1)) :
Equations
def LO.FirstOrder.Semiformula.ballLE {L : Language} {ξ : Type u_2} {n : } [Operator.LE L] (t : Semiterm L ξ n) (φ : Semiformula L ξ (n + 1)) :
Equations
def LO.FirstOrder.Semiformula.bexLE {L : Language} {ξ : Type u_2} {n : } [Operator.LE L] (t : Semiterm L ξ n) (φ : Semiformula L ξ (n + 1)) :
Equations
def LO.FirstOrder.Semiformula.ballMem {L : Language} {ξ : Type u_2} {n : } [Operator.Mem L] (t : Semiterm L ξ n) (φ : Semiformula L ξ (n + 1)) :
Equations
def LO.FirstOrder.Semiformula.bexMem {L : Language} {ξ : Type u_2} {n : } [Operator.Mem L] (t : Semiterm L ξ n) (φ : Semiformula L ξ (n + 1)) :
Equations
theorem LO.FirstOrder.Rew.operator {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : } (o : Semiterm.Operator L k) (v : Fin kSemiterm L ξ₁ n₁) :
ω (o.operator v) = o.operator fun (i : Fin k) => ω (v i)
theorem LO.FirstOrder.Rew.operator' {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : } (o : Semiterm.Operator L k) (v : Fin kSemiterm L ξ₁ n₁) :
ω (o.operator v) = o.operator (ω v)
@[simp]
theorem LO.FirstOrder.Rew.finitary0 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiterm.Operator L 0) (v : Fin 0Semiterm L ξ₁ n₁) :
ω (o.operator v) = o.operator ![]
@[simp]
theorem LO.FirstOrder.Rew.finitary1 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiterm.Operator L 1) (t : Semiterm L ξ₁ n₁) :
ω (o.operator ![t]) = o.operator ![ω t]
@[simp]
theorem LO.FirstOrder.Rew.finitary2 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiterm.Operator L 2) (t₁ t₂ : Semiterm L ξ₁ n₁) :
ω (o.operator ![t₁, t₂]) = o.operator ![ω t₁, ω t₂]
@[simp]
theorem LO.FirstOrder.Rew.finitary3 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiterm.Operator L 3) (t₁ t₂ t₃ : Semiterm L ξ₁ n₁) :
ω (o.operator ![t₁, t₂, t₃]) = o.operator ![ω t₁, ω t₂, ω t₃]
@[simp]
theorem LO.FirstOrder.Rew.const {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_1} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (c : Semiterm.Const L) :
ω c = c
theorem LO.FirstOrder.Rew.hom_operator {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : } (o : Semiformula.Operator L k) (v : Fin kSemiterm L ξ₁ n₁) :
(Rewriting.app ω) (o.operator v) = o.operator fun (i : Fin k) => ω (v i)
theorem LO.FirstOrder.Rew.hom_operator' {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : } (o : Semiformula.Operator L k) (v : Fin kSemiterm L ξ₁ n₁) :
(Rewriting.app ω) (o.operator v) = o.operator (ω v)
@[simp]
theorem LO.FirstOrder.Rew.hom_finitary0 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiformula.Operator L 0) (v : Fin 0Semiterm L ξ₁ n₁) :
(Rewriting.app ω) (o.operator v) = o.operator ![]
@[simp]
theorem LO.FirstOrder.Rew.hom_finitary1 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiformula.Operator L 1) (t : Semiterm L ξ₁ n₁) :
(Rewriting.app ω) (o.operator ![t]) = o.operator ![ω t]
@[simp]
theorem LO.FirstOrder.Rew.hom_finitary2 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiformula.Operator L 2) (t₁ t₂ : Semiterm L ξ₁ n₁) :
(Rewriting.app ω) (o.operator ![t₁, t₂]) = o.operator ![ω t₁, ω t₂]
@[simp]
theorem LO.FirstOrder.Rew.hom_finitary3 {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiformula.Operator L 3) (t₁ t₂ t₃ : Semiterm L ξ₁ n₁) :
(Rewriting.app ω) (o.operator ![t₁, t₂, t₃]) = o.operator ![ω t₁, ω t₂, ω t₃]
@[simp]
theorem LO.FirstOrder.Rew.hom_const {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_1} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {c : Semiformula.Const L} :
(Rewriting.app ω) c = c
theorem LO.FirstOrder.Rew.eq_equal_iff {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) [L.Eq] {φ : Semiformula L ξ₁ n₁} {t u : Semiterm L ξ₂ n₂} :
(Rewriting.app ω) φ = op(=).operator ![t, u] ∃ (t' : Semiterm L ξ₁ n₁) (u' : Semiterm L ξ₁ n₁), ω t' = t ω u' = u φ = op(=).operator ![t', u']
theorem LO.FirstOrder.Rew.eq_lt_iff {ξ₁ : Type u_1} {n₁ : } {ξ₂ : Type u_2} {n₂ : } {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) [L.LT] {φ : Semiformula L ξ₁ n₁} {t u : Semiterm L ξ₂ n₂} :
(Rewriting.app ω) φ = op(<).operator ![t, u] ∃ (t' : Semiterm L ξ₁ n₁) (u' : Semiterm L ξ₁ n₁), ω t' = t ω u' = u φ = op(<).operator ![t', u']
@[simp]
@[simp]
@[simp]
theorem LO.FirstOrder.Structure.add_eq_of_lang {L : Language} (M : Type u_1) [Structure L M] [L.Add] [Add M] [Structure.Add L M] {v : Fin 2M} :
@[simp]
theorem LO.FirstOrder.Structure.mul_eq_of_lang {L : Language} (M : Type u_1) [Structure L M] [L.Mul] [Mul M] [Structure.Mul L M] {v : Fin 2M} :
@[simp]
theorem LO.FirstOrder.Structure.exp_eq_of_lang {L : Language} (M : Type u_1) [Structure L M] [L.Exp] [Exp M] [Structure.Exp L M] {v : Fin 1M} :
@[simp]
theorem LO.FirstOrder.Structure.eq_lang {L : Language} (M : Type u_1) [Structure L M] [L.Eq] [Structure.Eq L M] {v : Fin 2M} :
@[simp]
theorem LO.FirstOrder.Structure.lt_lang {L : Language} (M : Type u_1) [Structure L M] [L.LT] [LT M] [Structure.LT L M] {v : Fin 2M} :
theorem LO.FirstOrder.Structure.operator_val_ofEquiv_iff {L : Language} (M : Type u_1) [Structure L M] {N : Type u_2} (φ : M N) {k : } {o : Semiformula.Operator L k} {v : Fin kN} :
o.val v o.val (φ.symm v)
@[simp]
theorem LO.FirstOrder.Semiformula.eval_ballLT {ξ : Type u_3} {n : } {L : Language} {M : Type u_1} {s : Structure L M} {t : Semiterm L ξ n} {φ : Semiformula L ξ (n + 1)} [Operator.LT L] [LT M] [Structure.LT L M] {e : Fin nM} {ε : ξM} :
(Eval s e ε) (ballLT t φ) x < Semiterm.val s e ε t, (Eval s (x :> e) ε) φ
@[simp]
theorem LO.FirstOrder.Semiformula.eval_bexLT {ξ : Type u_3} {n : } {L : Language} {M : Type u_1} {s : Structure L M} {t : Semiterm L ξ n} {φ : Semiformula L ξ (n + 1)} [Operator.LT L] [LT M] [Structure.LT L M] {e : Fin nM} {ε : ξM} :
(Eval s e ε) (bexLT t φ) x < Semiterm.val s e ε t, (Eval s (x :> e) ε) φ
@[simp]
theorem LO.FirstOrder.Semiformula.eval_ballLE {ξ : Type u_3} {n : } {L : Language} {M : Type u_1} {s : Structure L M} {t : Semiterm L ξ n} {φ : Semiformula L ξ (n + 1)} [Operator.LE L] [LE M] [Structure.LE L M] {e : Fin nM} {ε : ξM} :
(Eval s e ε) (ballLE t φ) xSemiterm.val s e ε t, (Eval s (x :> e) ε) φ
@[simp]
theorem LO.FirstOrder.Semiformula.eval_bexLE {ξ : Type u_3} {n : } {L : Language} {M : Type u_1} {s : Structure L M} {t : Semiterm L ξ n} {φ : Semiformula L ξ (n + 1)} [Operator.LE L] [LE M] [Structure.LE L M] {e : Fin nM} {ε : ξM} :
(Eval s e ε) (bexLE t φ) xSemiterm.val s e ε t, (Eval s (x :> e) ε) φ
@[simp]
theorem LO.FirstOrder.Semiformula.eval_ballMem {ξ : Type u_3} {n : } {L : Language} {M : Type u_1} {s : Structure L M} {t : Semiterm L ξ n} {φ : Semiformula L ξ (n + 1)} [Operator.Mem L] [Membership M M] [Structure.Mem L M] {e : Fin nM} {ε : ξM} :
(Eval s e ε) (ballMem t φ) xSemiterm.val s e ε t, (Eval s (x :> e) ε) φ
@[simp]
theorem LO.FirstOrder.Semiformula.eval_bexMem {ξ : Type u_3} {n : } {L : Language} {M : Type u_1} {s : Structure L M} {t : Semiterm L ξ n} {φ : Semiformula L ξ (n + 1)} [Operator.Mem L] [Membership M M] [Structure.Mem L M] {e : Fin nM} {ε : ξM} :
(Eval s e ε) (bexMem t φ) xSemiterm.val s e ε t, (Eval s (x :> e) ε) φ
@[reducible, inline]
abbrev LO.FirstOrder.Semiterm.numeral {L : Language} [L.Zero] [L.One] [L.Add] {ξ : Type u_2} {n : } (k : ) :
Semiterm L ξ n
Equations
instance LO.FirstOrder.Semiterm.instCoeNat {L : Language} [L.Zero] [L.One] [L.Add] {ξ : Type u_2} {n : } :
Coe (Semiterm L ξ n)
Equations