Documentation

LeanPool.FoZfc.BoundedFormulaOps

Definitions and theorems about replaceFV and liftAt. #

Main Definitions #

Main Statements #

Notations #

@[match_pattern]
def FirstOrder.Language.BoundedFormula.or {L : Language} {α : Type v} {n : } (ϕ1 ϕ2 : L.BoundedFormula α n) :

Or operator in the formula.

Equations
Instances For

    Or operator in the formula.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[match_pattern]
      def FirstOrder.Language.BoundedFormula.and {L : Language} {α : Type v} {n : } (ϕ1 ϕ2 : L.BoundedFormula α n) :

      And operator in the formula.

      Equations
      Instances For

        And operator in the formula.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem FirstOrder.Language.BoundedFormula.realize_or {V : Type u} {L : Language} [L.Structure V] {n : } {ϕ ψ : L.BoundedFormula n} {s : V} {xs : Fin nV} :
          (ϕ∨'ψ).Realize s xs ϕ.Realize s xs ψ.Realize s xs
          @[simp]
          theorem FirstOrder.Language.BoundedFormula.realize_and {V : Type u} {L : Language} [L.Structure V] {n : } {ϕ ψ : L.BoundedFormula n} {s : V} {xs : Fin nV} :
          (ϕ∧'ψ).Realize s xs ϕ.Realize s xs ψ.Realize s xs
          def FirstOrder.Language.Term.replaceFV {L : Language} {n : } (t : L.Term ( Fin n)) (tsN : L.Term ( Fin n)) :
          L.Term ( Fin n)

          Replace all free variables fv' k with tsN k in a term t.

          Equations
          Instances For
            def FirstOrder.Language.BoundedFormula.makeTsN {L : Language} {n m : } (ts : Fin (m + 1)L.Term ( Fin n)) (k : ) :
            L.Term ( Fin n)

            Make a function on whose value at k is ts k if k < m + 1 and fv' k otherwise.

            Equations
            Instances For
              def FirstOrder.Language.BoundedFormula.replaceInitialValues {V : Type u} {n : } (s : V) (xs : Fin (n + 1)V) (k : ) :
              V

              Replace the initial part of s : ℕ → V by xs : Fin (n + 1) → V.

              Equations
              Instances For
                def FirstOrder.Language.BoundedFormula.liftAndReplaceFV {L : Language} {n l : } (ϕ : L.BoundedFormula n) (n' m : ) (ts : Fin (l + 1)L.Term ( Fin (n + n'))) :

                Apply liftAt n' m and replace (makeTsN ts) in one call.

                Equations
                Instances For
                  @[simp]
                  theorem FirstOrder.Language.ReplaceFV.Term.realize_replaceFV {L : Language} {V : Type u} [L.Structure V] {n : } {s : V} {xs : Fin nV} {t : L.Term ( Fin n)} {tsN : L.Term ( Fin n)} :
                  Term.realize (Sum.elim s xs) (t.replaceFV tsN) = Term.realize (Sum.elim (fun (k : ) => Term.realize (Sum.elim s xs) (tsN k)) xs) t
                  theorem FirstOrder.Language.ReplaceFV.Term.realize_liftAt'_one {L : Language} {V : Type u} [L.Structure V] {n : } {s : V} {xs : Fin nV} {t : L.Term ( Fin n)} {a : V} :
                  theorem FirstOrder.Language.ReplaceFV.Term.realize_liftAt' {L : Language} {V : Type u} [L.Structure V] {n n' : } {s : V} {xs : Fin nV} {xs1 : Fin (n + n')V} {t : L.Term ( Fin n)} :
                  (∀ (k : Fin n), xs1 (Fin.castAdd n' k) = xs k)Term.realize (Sum.elim s xs1) (Term.liftAt n' n t) = Term.realize (Sum.elim s xs) t

                  Realization of liftAt n' n t agrees with realization of t when the extra context values xs1 extend xs along castAdd. Lifts the hypothesis n + n' ≤ n + 1 from realize_liftAt to m ≤ n.

                  @[simp]
                  theorem FirstOrder.Language.ReplaceFV.BoundedFormula.realize_replaceFV {L : Language} {V : Type u} [L.Structure V] {n : } {s : V} {xs : Fin nV} {ϕ : L.BoundedFormula n} {tsN : L.Term ( Fin n)} :
                  (ϕ.replaceFV tsN).Realize s xs ϕ.Realize (fun (k : ) => Term.realize (Sum.elim s xs) (tsN k)) xs
                  theorem FirstOrder.Language.ReplaceFV.realize_liftAt' {L : Language} {V : Type u} [L.Structure V] {n' m : } {h_n_prime_nezero : n' > 0} {s : V} {n : } {φ : L.BoundedFormula n} (xs : Fin (n + n')V) :
                  m n → ((BoundedFormula.liftAt n' m φ).Realize s xs φ.Realize s (xs fun (i : Fin n) => if i < m then Fin.castAdd n' i else i.addNat n'))

                  Lifted realization invariant: a formula's realization at lifted context matches its realization at the original context, under the hypothesis m ≤ n.

                  @[simp]
                  theorem FirstOrder.Language.ReplaceFV.realize_makeTsN {L : Language} {n m k : } {ts : Fin (m + 1)L.Term ( Fin n)} {h : k < m + 1} :

                  makeTsN ts k = ts (Fin.ofNat (m+1) k) when k < m + 1.