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 k → Semiterm 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 k → Semiterm 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 k → Semiterm 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 arity → Semiterm 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 arity → Semiterm 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 k → V) → 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 0 → V) :
    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 k → V) (a : V) :
    @[simp]
    theorem LO.Arith.quote_matrix_inj {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : ℕ} (v w : Fin k → V) :
    @[simp]
    theorem LO.Arith.quote_lh {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : ℕ} (v : Fin k → V) :
    len ⌜v⌝ = ↑k
    @[simp]
    theorem LO.Arith.quote_nth_fin {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : ℕ} (v : Fin k → V) (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 n → V} {ε : ξ → 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 k → SyntacticSemiterm 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 k → FirstOrder.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 k → FirstOrder.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 n → FirstOrder.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 n → FirstOrder.SyntacticSemiterm L m) (v : Fin k → FirstOrder.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 k → FirstOrder.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 k → SyntacticSemiterm 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 k → SyntacticSemiterm 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 n → FirstOrder.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 n → FirstOrder.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 n → FirstOrder.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 k → SyntacticSemiterm 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 k → SyntacticSemiterm 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 k → SyntacticSemiterm 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 2 → SyntacticSemiterm ℒₒᵣ 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 2 → SyntacticSemiterm ℒₒᵣ 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 2 → SyntacticSemiterm ℒₒᵣ 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 φ) :