Documentation

LeanPool.PointwiseComposition.Foundation.FirstOrder.Syntax.Classical.Operator

Supporting results for pointwise provable equality.

Data and laws for Operator in FFL.FirstOrder.Semiterm.

Instances For
    @[reducible, inline]

    The Const construction in FFL.FirstOrder.Semiterm.

    Equations
    Instances For

      The fn construction in FFL.FirstOrder.Semiterm.

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

        The equiv construction in FFL.FirstOrder.Semiterm.Operator.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[reducible, inline]

          The const construction in FFL.FirstOrder.Semiterm.Operator.

          Equations
          Instances For

            The comp construction in FFL.FirstOrder.Semiterm.Operator.

            Equations
            Instances For
              @[simp]
              theorem PointwiseComposition.FFL.FirstOrder.Semiterm.Operator.operator_comp {L : Language} {k l : ℕ} {ξ : Type u_1} {n : ℕ} (o : Operator L k) (w : Fin k → Operator L l) (v : Fin l → Semiterm L ξ n) :
              (o.comp w).operator v = o.operator fun (x : Fin k) => (w x).operator v
              theorem PointwiseComposition.FFL.FirstOrder.Semiterm.Operator.operator_bvar {L : Language} {k : ℕ} {ξ : Type u_1} {n : ℕ} (x : Fin k) (v : Fin k → Semiterm L ξ n) :
              (bvar x).operator v = v x
              theorem PointwiseComposition.FFL.FirstOrder.Semiterm.Operator.bv_operator {L : Language} {ξ : Type u_1} {n k : ℕ} (o : Operator L k) (v : Fin k → Semiterm L ξ (n + 1)) :
              (o.operator v).bv = (bv o.term).biUnion fun (i : Fin k) => (v i).bv
              theorem PointwiseComposition.FFL.FirstOrder.Semiterm.Operator.positive_operator_iff {L : Language} {ξ : Type u_1} {n k : ℕ} {o : Operator L k} {v : Fin k → Semiterm L ξ (n + 1)} :
              (o.operator v).Positive ↔ ∀ i ∈ bv o.term, (v i).Positive

              The foldr construction in FFL.FirstOrder.Semiterm.Operator.

              Equations
              Instances For
                @[simp]
                theorem PointwiseComposition.FFL.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 k → Semiterm L ξ n) :
                (f.foldr z (o :: os)).operator v = f.operator ![(f.foldr z os).operator v, o.operator v]

                Data and laws for Gödel Number in FFL.FirstOrder.Semiterm.Operator.

                Instances

                  The «term Op(0)» construction in FFL.FirstOrder.Semiterm.Operator.

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

                    The «term Op(0)[ ]» construction in FFL.FirstOrder.Semiterm.Operator.

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

                      The «term Op(1)» construction in FFL.FirstOrder.Semiterm.Operator.

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

                        The «term Op(1)[ ]» construction in FFL.FirstOrder.Semiterm.Operator.

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

                          The «term Op(+)» construction in FFL.FirstOrder.Semiterm.Operator.

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

                            The «term Op(+)[ ]» construction in FFL.FirstOrder.Semiterm.Operator.

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

                              The «term Op(*)» construction in FFL.FirstOrder.Semiterm.Operator.

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

                                The «term Op(*)[ ]» construction in FFL.FirstOrder.Semiterm.Operator.

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

                                  The npow construction in FFL.FirstOrder.Semiterm.Operator.

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

                                    Data and laws for Operator in FFL.FirstOrder.Semiformula.

                                    Instances For
                                      @[reducible, inline]

                                      The Const construction in FFL.FirstOrder.Semiformula.

                                      Equations
                                      Instances For
                                        def PointwiseComposition.FFL.FirstOrder.Semiformula.Operator.operator {L : Language} {ξ : Type u_2} {n arity : ℕ} (o : Operator L arity) (v : Fin arity → Semiterm L ξ n) :

                                        The operator construction in FFL.FirstOrder.Semiformula.Operator.

                                        Equations
                                        Instances For

                                          The comp construction in FFL.FirstOrder.Semiformula.Operator.

                                          Equations
                                          Instances For
                                            theorem PointwiseComposition.FFL.FirstOrder.Semiformula.Operator.operator_comp {L : Language} {k l : ℕ} {ξ : Type u_1} {n : ℕ} (o : Operator L k) (w : Fin k → Semiterm.Operator L l) (v : Fin l → Semiterm L ξ n) :
                                            (o.comp w).operator v = o.operator fun (x : Fin k) => (w x).operator v

                                            The and construction in FFL.FirstOrder.Semiformula.Operator.

                                            Equations
                                            Instances For

                                              The or construction in FFL.FirstOrder.Semiformula.Operator.

                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem PointwiseComposition.FFL.FirstOrder.Semiformula.Operator.operator_and {L : Language} {k : ℕ} {ξ : Type u_1} {n : ℕ} (o₁ o₂ : Operator L k) (v : Fin k → Semiterm L ξ n) :
                                                (o₁.and o₂).operator v = o₁.operator v ⋏ o₂.operator v
                                                @[simp]
                                                theorem PointwiseComposition.FFL.FirstOrder.Semiformula.Operator.operator_or {L : Language} {k : ℕ} {ξ : Type u_1} {n : ℕ} (o₁ o₂ : Operator L k) (v : Fin k → Semiterm L ξ n) :
                                                (o₁.or o₂).operator v = o₁.operator v ⋎ o₂.operator v

                                                The «term Op(=)» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                  The «term Op(=)[ ]» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                    The «term Op(<)» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                      The «term Op(<)[ ]» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                        The «term Op(≤)» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                          The «term Op(≤)[ ]» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                            The «term Op(∈)» construction in FFL.FirstOrder.Semiformula.Operator.

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

                                                              The «term Op(∈)[ ]» construction in FFL.FirstOrder.Semiformula.Operator.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                @[instance_reducible]
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                @[instance_reducible]
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                @[instance_reducible]
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.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 PointwiseComposition.FFL.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 PointwiseComposition.FFL.FirstOrder.Semiformula.Operator.Mem.mem_inj {L : Language} {ξ₂ : Type u_1} {n₂ : ℕ} [L.Mem] {t₁ t₂ u₁ u₂ : Semiterm L ξ₂ n₂} :
                                                                op(∈).operator ![t₁, u₁] = op(∈).operator ![t₂, u₂] ↔ t₁ = t₂ ∧ u₁ = u₂
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.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 PointwiseComposition.FFL.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 k → Semiterm L ξ₁ n₁) :
                                                                ω (o.operator v) = o.operator fun (i : Fin k) => ω (v i)
                                                                theorem PointwiseComposition.FFL.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 k → Semiterm L ξ₁ n₁) :
                                                                ω (o.operator v) = o.operator (⇑ω ∘ v)
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.FirstOrder.Rew.finitary0 {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_2} {n₂ : ℕ} {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (o : Semiterm.Operator L 0) (v : Fin 0 → Semiterm L ξ₁ n₁) :
                                                                ω (o.operator v) = o.operator ![]
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.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 PointwiseComposition.FFL.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 PointwiseComposition.FFL.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₃]
                                                                theorem PointwiseComposition.FFL.FirstOrder.Rew.const {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_1} {n₂ : ℕ} {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (c : Semiterm.Const L) :
                                                                ω ↑c = ↑c
                                                                theorem PointwiseComposition.FFL.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 k → Semiterm L ξ₁ n₁) :
                                                                (Rewriting.app ω) (o.operator v) = o.operator fun (i : Fin k) => ω (v i)
                                                                theorem PointwiseComposition.FFL.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 k → Semiterm L ξ₁ n₁) :
                                                                (Rewriting.app ω) (o.operator v) = o.operator (⇑ω ∘ v)
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.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 0 → Semiterm L ξ₁ n₁) :
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.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₁) :
                                                                @[simp]
                                                                theorem PointwiseComposition.FFL.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 PointwiseComposition.FFL.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 PointwiseComposition.FFL.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 PointwiseComposition.FFL.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 PointwiseComposition.FFL.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']
                                                                theorem PointwiseComposition.FFL.FirstOrder.Rew.eq_mem_iff {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_2} {n₂ : ℕ} {L : Language} (ω : Rew L ξ₁ n₁ ξ₂ n₂) [L.Mem] {φ : 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']
                                                                @[reducible, inline]
                                                                abbrev PointwiseComposition.FFL.FirstOrder.Semiterm.numeral {L : Language} [L.Zero] [L.One] [L.Add] {ξ : Type u_2} {n : ℕ} (k : ℕ) :
                                                                Semiterm L ξ n

                                                                The numeral construction in FFL.FirstOrder.Semiterm.

                                                                Equations
                                                                Instances For