Documentation

LeanPool.PointwiseComposition.Foundation.Syntax.Predicate.Term

Supporting results for pointwise provable equality.

Terms of first-order logic #

This file defines the terms of first-order logic.

The bounded variables are denoted by #x for x : Fin n, and free variables are denoted by &x for x : ξ. t : Semiterm L ξ n is a (semi-)term of language L with bounded variables of Fin n and free variables of ξ.

inductive PointwiseComposition.FFL.FirstOrder.Semiterm (L : Language) (ξ : Type u_1) (n : ℕ) :
Type (max u_1 u_2)

A semiterm of language L, with bound variables indexed by Fin n and free variables indexed by ξ. In FFL.FirstOrder.Semiformula, bound variables are de Bruijn indices with a separate type from free variables.

Instances For

    &x is the free variable indexed by the element x : ξ.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      #x is the bound variable with de Bruijn index x.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible, inline]
        abbrev PointwiseComposition.FFL.FirstOrder.Term (L : Language) (ξ : Type u_1) :
        Type (max u_1 u_2)

        The Term construction in FFL.FirstOrder.

        Equations
        Instances For
          @[reducible, inline]

          The Closed Semiterm construction in FFL.FirstOrder.

          Equations
          Instances For
            @[reducible, inline]

            The Closed Term construction in FFL.FirstOrder.

            Equations
            Instances For
              @[reducible, inline]

              The Syntactic Semiterm construction in FFL.FirstOrder.

              Equations
              Instances For
                @[reducible, inline]

                The Syntactic Term construction in FFL.FirstOrder.

                Equations
                Instances For
                  theorem PointwiseComposition.FFL.FirstOrder.Semiterm.complexity_func {L : Language} {ξ : Type u_1} {n k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) :
                  (func f v).complexity = (Finset.univ.sup fun (i : Fin k) => (v i).complexity) + 1
                  @[simp]
                  theorem PointwiseComposition.FFL.FirstOrder.Semiterm.complexity_func_lt {L : Language} {ξ : Type u_1} {n k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) (i : Fin k) :
                  @[reducible, inline]
                  abbrev PointwiseComposition.FFL.FirstOrder.Semiterm.funcWithArity {L : Language} {ξ : Type u_1} {n : ℕ} (k : ℕ) (f : L.Func k) (v : Fin k → Semiterm L ξ n) :
                  Semiterm L ξ n

                  The func! construction in FFL.FirstOrder.Semiterm.

                  Equations
                  Instances For
                    @[simp]
                    theorem PointwiseComposition.FFL.FirstOrder.Semiterm.bv_bvar {L : Language} {ξ : Type u_1} {n : ℕ} {x : Fin n} :
                    (bvar x).bv = {x}
                    @[simp]
                    theorem PointwiseComposition.FFL.FirstOrder.Semiterm.bv_fvar {L : Language} {ξ : Type u_1} {n : ℕ} {x : ξ} :
                    (fvar x).bv = ∅
                    theorem PointwiseComposition.FFL.FirstOrder.Semiterm.bv_func {L : Language} {ξ : Type u_1} {n k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) :
                    (func f v).bv = Finset.univ.biUnion fun (i : Fin k) => (v i).bv
                    @[simp]
                    theorem PointwiseComposition.FFL.FirstOrder.Semiterm.bv_constant {L : Language} {ξ : Type u_1} {n : ℕ} (f : L.Func 0) (v : Fin 0 → Semiterm L ξ n) :
                    (func f v).bv = ∅

                    The Positive construction in FFL.FirstOrder.Semiterm.

                    Equations
                    Instances For
                      @[simp]
                      @[simp]
                      theorem PointwiseComposition.FFL.FirstOrder.Semiterm.Positive.func {L : Language} {ξ : Type u_1} {n k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ (n + 1)) :
                      (func f v).Positive ↔ ∀ (i : Fin k), (v i).Positive
                      theorem PointwiseComposition.FFL.FirstOrder.Semiterm.freeVariables_func {L : Language} {ξ : Type u_1} {n : ℕ} [DecidableEq ξ] {k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) :
                      @[simp]
                      @[reducible, inline]

                      The FVar? construction in FFL.FirstOrder.Semiterm.

                      Equations
                      Instances For
                        @[simp]
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.hasFreeVariable_func {L : Language} {ξ : Type u_1} {n : ℕ} [DecidableEq ξ] (x : ξ) {k : ℕ} (f : L.Func k) (v : Fin k → Semiterm L ξ n) :
                        (func f v).HasFreeVariable x ↔ ∃ (i : Fin k), (v i).HasFreeVariable x
                        @[simp]
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.lMap_bvar {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {n : ℕ} (Φ : L₁.Hom L₂) (x : Fin n) :
                        lMap Φ (bvar x) = bvar x
                        @[simp]
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.lMap_fvar {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {n : ℕ} (Φ : L₁.Hom L₂) (x : ξ) :
                        lMap Φ (fvar x) = fvar x
                        @[simp]
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.lMap_func {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {n : ℕ} (Φ : L₁.Hom L₂) {k : ℕ} (f : L₁.Func k) (v : Fin k → Semiterm L₁ ξ n) :
                        lMap Φ (func f v) = func (Φ.func f) (lMap Φ ∘ v)
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.lMap_func' {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {n : ℕ} (Φ : L₁.Hom L₂) {k : ℕ} (f : L₁.Func k) (v : Fin k → Semiterm L₁ ξ n) :
                        lMap Φ (func f v) = func (Φ.func f) fun (i : Fin k) => lMap Φ (v i)
                        @[simp]
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.lMap_positive {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {n : ℕ} (Φ : L₁.Hom L₂) (t : Semiterm L₁ ξ (n + 1)) :
                        @[simp]
                        theorem PointwiseComposition.FFL.FirstOrder.Semiterm.freeVariables_lMap {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {n : ℕ} [DecidableEq ξ] (Φ : L₁.Hom L₂) (t : Semiterm L₁ ξ n) :

                        The idx Of FVar construction in FFL.FirstOrder.Semiterm.

                        Equations
                        Instances For

                          The enumerate FVar construction in FFL.FirstOrder.Semiterm.

                          Equations
                          Instances For