Documentation

Arithmetization.ISigmaOne.Metamath.Coding

theorem LO.FirstOrder.Semiterm.encode_eq_toNat {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] {n : } (t : Semiterm L ξ n) :
theorem LO.FirstOrder.Semiterm.toNat_func {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] {n k : } (f : L.Func k) (v : Fin kSemiterm L ξ n) :
(func f v).toNat = Nat.pair 2 (Nat.pair k (Nat.pair (Encodable.encode f) (Matrix.vecToNat fun (i : Fin k) => (v i).toNat))) + 1
@[simp]
theorem LO.FirstOrder.Semiterm.encode_emb {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] {n : } (t : Semiterm L Empty n) :

TODO: move to Foundation

theorem LO.FirstOrder.Semiformula.embedding_rel {L : Language} {ξ : Type u_1} {ο : Type u_2} {n : } [IsEmpty ο] {k : } (R : L.Rel k) (v : Fin kSemiterm L ο n) :
(rel R v) = rel R fun (i : Fin k) => Rew.emb (v i)
theorem LO.FirstOrder.Semiformula.embedding_nrel {L : Language} {ξ : Type u_1} {ο : Type u_2} {n : } [IsEmpty ο] {k : } (R : L.Rel k) (v : Fin kSemiterm L ο n) :
(nrel R v) = nrel R fun (i : Fin k) => Rew.emb (v i)
theorem LO.FirstOrder.Semiformula.encode_eq_toNat {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : Semiformula L ξ n) :
Encodable.encode φ = φ.toNat
theorem LO.FirstOrder.Semiformula.encode_rel {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n arity : } (R : L.Rel arity) (v : Fin aritySemiterm L ξ n) :
theorem LO.FirstOrder.Semiformula.encode_nrel {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n arity : } (R : L.Rel arity) (v : Fin aritySemiterm L ξ n) :
theorem LO.FirstOrder.Semiformula.encode_verum {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } :
theorem LO.FirstOrder.Semiformula.encode_falsum {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } :
theorem LO.FirstOrder.Semiformula.encode_and {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ ψ : Semiformula L ξ n) :
Encodable.encode (φ ψ) = Nat.pair 4 (Nat.pair φ.toNat ψ.toNat) + 1
theorem LO.FirstOrder.Semiformula.encode_or {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ ψ : Semiformula L ξ n) :
Encodable.encode (φ ψ) = Nat.pair 5 (Nat.pair φ.toNat ψ.toNat) + 1
theorem LO.FirstOrder.Semiformula.encode_all {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : Semiformula L ξ (n + 1)) :
Encodable.encode (∀' φ) = Nat.pair 6 φ.toNat + 1
theorem LO.FirstOrder.Semiformula.encode_ex {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : Semiformula L ξ (n + 1)) :
Encodable.encode (∃' φ) = Nat.pair 7 φ.toNat + 1
@[simp]
theorem LO.FirstOrder.Semiformula.encode_emb {L : Language} {ξ : Type u_1} [Encodable ξ] [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : Semisentence L n) :
theorem LO.FirstOrder.Semiformula.Operator.lt_eq {L : Language} {ξ : Type u_1} {n : } [L.LT] (t u : Semiterm L ξ n) :
(“!!t < !!u”) = rel op(<) ![t, u]
def LO.Arith.finArrowToVec {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } :
(Fin kV)V
Equations
Instances For

    quasi-quotation rather than Godel quotation

    Equations
    @[simp]
    theorem LO.Arith.quote_nil {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
    ![] = 0
    @[simp]
    theorem LO.Arith.quote_singleton {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
    ![a] = ?[a]
    @[simp]
    theorem LO.Arith.quote_doubleton {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a b : V) :
    ![a, b] = ?[a, b]
    @[simp]
    theorem LO.Arith.quote_matrix_empty {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (v : Fin 0V) :
    theorem LO.Arith.quote_matrix_succ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (v : Fin (k + 1)V) :
    v = cons (v 0) fun (i : Fin k) => v i.succ
    @[simp]
    theorem LO.Arith.quote_cons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (v : Fin kV) (a : V) :
    @[simp]
    theorem LO.Arith.quote_matrix_inj {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (v w : Fin kV) :
    @[simp]
    theorem LO.Arith.quote_lh {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (v : Fin kV) :
    len v = k
    @[simp]
    theorem LO.Arith.quote_nth_fin {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (v : Fin kV) (i : Fin k) :
    nth v i = v i
    @[simp]
    theorem LO.Arith.quote_matrix_absolute {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (v : Fin k) :
    v = fun (i : Fin k) => (v i)
    theorem LO.Arith.quote_eq_coe_encode {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {α : Type u_2} [Encodable α] (x : α) :
    @[simp]
    theorem LO.Arith.quote_nat {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (n : ) :
    n = n
    theorem LO.Arith.coe_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {α : Type u_2} [Encodable α] (x : α) :
    @[simp]
    theorem LO.Arith.quote_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {α : Type u_2} [Encodable α] (x : α) :
    @[simp]
    theorem LO.Arith.val_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {α : Type u_2} [Encodable α] {ξ : Type u_3} {n : } {e : Fin nV} {ε : ξV} (x : α) :
    @[simp]
    theorem LO.Arith.quote_inj_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {α : Type u_2} [Encodable α] {x y : α} :
    theorem LO.FirstOrder.Semiterm.quote_eq_toNat (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] {n : } (t : SyntacticSemiterm L n) :
    t = (toNat t)
    @[simp]
    theorem LO.FirstOrder.Semiterm.quote_bvar (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] {n : } (z : Fin n) :
    @[simp]
    theorem LO.FirstOrder.Semiterm.quote_fvar (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] {n : } (x : ) :
    theorem LO.FirstOrder.Semiterm.quote_func (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] {n k : } (f : L.Func k) (v : Fin kSyntacticSemiterm L n) :
    func f v = Arith.qqFunc k f fun (i : Fin k) => v i
    @[simp]
    theorem LO.FirstOrder.Semiterm.codeIn_inj (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] {n : } {t u : SyntacticSemiterm L n} :
    @[simp]
    @[simp]
    @[simp]
    theorem LO.FirstOrder.Semiterm.quote_absolute (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] {n : } (t : SyntacticSemiterm L n) :
    theorem LO.Arith.eq_fin_of_lt_nat {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : } {x : V} (hx : x < n) :
    ∃ (i : Fin n), x = i

    TODO: move

    @[simp]
    theorem LO.Arith.semiterm_codeIn {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (t : FirstOrder.SyntacticSemiterm L n) :
    (L.codeIn V).IsSemiterm n t
    @[simp]
    theorem LO.Arith.semitermVec_codeIn {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {k n : } (v : Fin kFirstOrder.SyntacticSemiterm L n) :
    (L.codeIn V).IsSemitermVec k n fun (i : Fin k) => v i
    @[simp]
    theorem LO.Arith.isUTermVec_codeIn {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {k n : } (v : Fin kFirstOrder.SyntacticSemiterm L n) :
    (L.codeIn V).IsUTermVec k fun (i : Fin k) => v i
    @[simp]
    theorem LO.Arith.quote_termSubst {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n m : } (t : FirstOrder.SyntacticSemiterm L n) (w : Fin nFirstOrder.SyntacticSemiterm L m) :
    (FirstOrder.Rew.substs w) t = (L.codeIn V).termSubst fun (i : Fin n) => w i t
    theorem LO.Arith.quote_termSubstVec {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {k n m : } (w : Fin nFirstOrder.SyntacticSemiterm L m) (v : Fin kFirstOrder.SyntacticSemiterm L n) :
    fun (i : Fin k) => (FirstOrder.Rew.substs w) (v i) = (L.codeIn V).termSubstVec k fun (i : Fin n) => w i fun (i : Fin k) => v i
    @[simp]
    theorem LO.Arith.quote_termShift {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (t : FirstOrder.SyntacticSemiterm L n) :
    FirstOrder.Rew.shift t = (L.codeIn V).termShift t
    theorem LO.Arith.quote_termShiftVec {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {k n : } (v : Fin kFirstOrder.SyntacticSemiterm L n) :
    fun (i : Fin k) => FirstOrder.Rew.shift (v i) = (L.codeIn V).termShiftVec k fun (i : Fin k) => v i
    @[simp]
    theorem LO.Arith.quote_termBShift {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (t : FirstOrder.SyntacticSemiterm L n) :
    FirstOrder.Rew.bShift t = (L.codeIn V).termBShift t
    theorem LO.Arith.quote_eterm_eq_quote_emb {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] {n : } (t : FirstOrder.Semiterm L Empty n) :
    t = FirstOrder.Rew.embs t
    theorem LO.FirstOrder.Semiformula.quote_eq_toNat {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : SyntacticSemiformula L n) :
    φ = (toNat φ)
    theorem LO.FirstOrder.Semiformula.quote_rel {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n k : } (R : L.Rel k) (v : Fin kSyntacticSemiterm L n) :
    rel R v = Arith.qqRel k R fun (i : Fin k) => v i
    theorem LO.FirstOrder.Semiformula.quote_nrel {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n k : } (R : L.Rel k) (v : Fin kSyntacticSemiterm L n) :
    nrel R v = Arith.qqNRel k R fun (i : Fin k) => v i
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_verum {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] (n : ) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_falsum {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] (n : ) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_and {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ ψ : SyntacticSemiformula L n) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_or {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ ψ : SyntacticSemiformula L n) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_all {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : SyntacticSemiformula L (n + 1)) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_ex {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : SyntacticSemiformula L (n + 1)) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_semisentence_def {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {n : } (φ : Semisentence L n) :
    φ = φ
    theorem LO.FirstOrder.Semiformula.sentence_goedelNumber_def {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {ξ : Type u_2} {n : } (σ : Sentence L) :
    @[simp]
    theorem LO.FirstOrder.Semiformula.quote_weight {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] {k : } (n : ) :
    @[simp]
    theorem LO.Arith.semiformula_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ : FirstOrder.SyntacticSemiformula L n) :
    (L.codeIn V).IsSemiformula n φ
    @[simp]
    theorem LO.Arith.semiformula_quote0 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] (φ : FirstOrder.SyntacticFormula L) :
    (L.codeIn V).IsFormula φ
    @[simp]
    theorem LO.Arith.semiformula_quote1 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] (φ : FirstOrder.SyntacticSemiformula L 1) :
    (L.codeIn V).IsSemiformula 1 φ
    @[simp]
    theorem LO.Arith.semiformula_quote2 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] (φ : FirstOrder.SyntacticSemiformula L 2) :
    (L.codeIn V).IsSemiformula 2 φ
    @[simp]
    theorem LO.Arith.isUFormula_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ : FirstOrder.SyntacticSemiformula L n) :
    (L.codeIn V).IsUFormula φ
    @[simp]
    theorem LO.Arith.semiformula_quote_succ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ : FirstOrder.SyntacticSemiformula L (n + 1)) :
    (L.codeIn V).IsSemiformula (n + 1) φ
    @[simp]
    theorem LO.Arith.quote_neg {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ : FirstOrder.SyntacticSemiformula L n) :
    φ = (L.codeIn V).neg φ
    @[simp]
    theorem LO.Arith.quote_imply {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ ψ : FirstOrder.SyntacticSemiformula L n) :
    φ ψ = φ ^→[L.codeIn V] ψ
    @[simp]
    theorem LO.Arith.quote_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ ψ : FirstOrder.SyntacticSemiformula L n) :
    φ ψ = (L.codeIn V).iff φ ψ
    @[simp]
    theorem LO.Arith.quote_shift {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n : } (φ : FirstOrder.SyntacticSemiformula L n) :
    FirstOrder.Rewriting.shift φ = (L.codeIn V).shift φ
    theorem LO.Arith.qVec_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n m : } (w : Fin nFirstOrder.SyntacticSemiterm L m) :
    (L.codeIn V).qVec fun (i : Fin n) => w i = qqBvar 0 :> fun (i : Fin n) => FirstOrder.Rew.bShift (w i)
    @[simp]
    theorem LO.Arith.quote_substs {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n m : } (w : Fin nFirstOrder.SyntacticSemiterm L m) (φ : FirstOrder.SyntacticSemiformula L n) :
    φ w = (L.codeIn V).substs fun (i : Fin n) => w i φ
    theorem LO.Arith.quote_substs' {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n m : } (w : Fin nFirstOrder.Semiterm L Empty m) (σ : FirstOrder.Semisentence L n) :
    σ w = (L.codeIn V).substs fun (i : Fin n) => w i σ
    @[simp]
    theorem LO.Arith.free_quote {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] (φ : FirstOrder.SyntacticSemiformula L 1) :

    Typed #

    def LO.FirstOrder.Semiterm.codeIn' (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (t : SyntacticSemiterm L n) :
    (L.codeIn V).Semiterm n
    Equations
    Instances For
      @[simp]
      theorem LO.FirstOrder.Semiterm.codeIn'_val (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (t : SyntacticSemiterm L n) :
      def LO.FirstOrder.Semiterm.vCodeIn' (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {k n : } (v : Fin kSyntacticSemiterm L n) :
      (L.codeIn V).SemitermVec k n
      Equations
      Instances For
        @[simp]
        theorem LO.FirstOrder.Semiterm.vCodeIn'_val (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n k : } (v : Fin kSyntacticSemiterm L n) :
        v.val = fun (i : Fin k) => v i
        @[simp]
        theorem LO.FirstOrder.Semiterm.codeIn'_bvar (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (z : Fin n) :
        bvar z = (L.codeIn V).bvar z
        @[simp]
        theorem LO.FirstOrder.Semiterm.codeIn'_fvar (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (x : ) :
        fvar x = (L.codeIn V).fvar x
        theorem LO.FirstOrder.Semiterm.codeIn'_func (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n k : } (f : L.Func k) (v : Fin kSyntacticSemiterm L n) :
        func f v = (L.codeIn V).func v
        def LO.FirstOrder.Semiformula.codeIn' (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ : SyntacticSemiformula L n) :
        (L.codeIn V).Semiformula n
        Equations
        Instances For
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_val (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ : SyntacticSemiformula L n) :
          φ.val = φ
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_verum (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] (n : ) :
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_falsum (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] (n : ) :
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_and (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ ψ : SyntacticSemiformula L n) :
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_or (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ ψ : SyntacticSemiformula L n) :
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_all (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ : SyntacticSemiformula L (n + 1)) :
          ∀' φ = (φ.cast ).all
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_ex (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ : SyntacticSemiformula L (n + 1)) :
          ∃' φ = (φ.cast ).ex
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_neg (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ : SyntacticSemiformula L n) :
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_imp (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] {n : } (φ ψ : SyntacticSemiformula L n) :
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_weight (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] (k n : ) :
          @[simp]
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_neq (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : } (v : Fin 2SyntacticSemiterm ℒₒᵣ n) :
          nrel op(=) v = v 0.notEquals v 1
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_lt (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : } (v : Fin 2SyntacticSemiterm ℒₒᵣ n) :
          rel op(<) v = v 0.lessThan v 1
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn'_nlt (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : } (v : Fin 2SyntacticSemiterm ℒₒᵣ n) :
          nrel op(<) v = v 0.notLessThan v 1
          @[simp]
          @[simp]
          @[simp]
          theorem LO.FirstOrder.Semiformula.quote_sentence_val (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] (σ : Sentence L) :
          σ.val = σ
          @[simp]
          theorem LO.FirstOrder.Semiformula.codeIn''_imp (V : Type u_1) [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [Arith.DefinableLanguage L] (σ π : Sentence L) :
          theorem LO.Arith.mem_iff_mem_bitIndices {x s : } :
          x s x s.bitIndices
          theorem LO.Arith.Language.IsSemiterm.sound {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n t : } (ht : (L.codeIn ).IsSemiterm n t) :
          theorem LO.Arith.Language.IsSemiformula.sound {L : FirstOrder.Language} [(k : ) → Encodable (L.Func k)] [(k : ) → Encodable (L.Rel k)] [DefinableLanguage L] {n φ : } (h : (L.codeIn ).IsSemiformula n φ) :