Documentation

Provenance.Query

inductive Term (T : Sort u_1) (n : ) :
Sort (max 1 u_1)
Instances For
    def Term.repr {T : Type} {n : } [Repr T] :
    Term T nStd.Format
    Equations
    Instances For
      instance instReprTerm {α : Type} {n : } [Repr α] :
      Repr (Term α n)
      Equations
      def Term.eval {T : Type} [ValueType T] {n : } (term : Term T n) (tuple : Tuple T n) :
      T
      Equations
      Instances For
        theorem Term.castToAnnotatedTuple_eval {T : Type} [ValueType T] {K : Type} {n : } [HasAltLinearOrder K] [SemiringWithMonus K] (t : Term T n) (tuple : Tuple T n) (α : K) :
        t.castToAnnotatedTuple.eval (Fin.append (fun (k : Fin n) => Sum.inl (tuple k)) ![Sum.inr α]) = Sum.inl (t.eval tuple)
        instance instCoeTerm {T : Type} {n : } :
        Coe T (Term T n)
        Equations
        instance instOfNatTermNat {n a : } :
        OfNat (Term n) a
        Equations
        inductive BoolTerm (T : Sort u_1) (n : ) :
        Sort (max 1 u_1)
        Instances For
          def BoolTerm.repr {T : Type} {n : } [Repr T] :
          BoolTerm T nStd.Format
          Equations
          Instances For
            instance instReprBoolTerm {α : Type} {n : } [Repr α] :
            Repr (BoolTerm α n)
            Equations
            def BoolTerm.eval {T : Type} [ValueType T] {n : } (φ : BoolTerm T n) (tuple : Tuple T n) :
            Equations
            Instances For
              theorem BoolTerm.castToAnnotatedTuple_eval {T : Type} [ValueType T] {K : Type} {n : } [HasAltLinearOrder K] [SemiringWithMonus K] (t : BoolTerm T n) (tuple : Tuple T n) (α : K) :
              t.castToAnnotatedTuple.eval (Fin.append (fun (k : Fin n) => Sum.inl (tuple k)) ![Sum.inr α]) = t.eval tuple
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                inductive Filter (T : Sort u_1) (n : ) :
                Sort (max 1 u_1)
                Instances For
                  def Filter.repr {T : Type} {n : } [Repr T] :
                  Filter T nStd.Format
                  Equations
                  Instances For
                    instance instReprFilter {α : Type} {n : } [Repr α] :
                    Repr (Filter α n)
                    Equations
                    def Filter.eval {T : Type} [ValueType T] {n : } (φ : Filter T n) (tuple : Tuple T n) :
                    Equations
                    Instances For
                      theorem Filter.castToAnnotatedTuple_eval {T : Type} [ValueType T] {K : Type} {n : } [HasAltLinearOrder K] [SemiringWithMonus K] (φ : Filter T n) (tuple : Tuple T n) (α : K) :
                      φ.castToAnnotatedTuple.eval (Fin.append (fun (k : Fin n) => Sum.inl (tuple k)) ![Sum.inr α]) = φ.eval tuple
                      def Filter.evalDecidable {T : Type} [ValueType T] {n : } (φ : Filter T n) :
                      Equations
                      Instances For
                        instance instCoeBoolTermFilter {T : Type} {n : } :
                        Coe (BoolTerm T n) (Filter T n)
                        Equations
                        inductive AggFunc :
                        Instances For
                          Equations
                          Instances For
                            def addFn {T : Type} [ValueType T] (a b : T) :
                            T
                            Equations
                            Instances For
                              def AggFunc.eval {T : Type} [ValueType T] (a : AggFunc) (m : Multiset T) :
                              T
                              Equations
                              Instances For
                                inductive Query (T : Type) :
                                Type
                                Instances For
                                  def Query.repr {T : Type} {n : } [Repr T] :
                                  Query T nStd.Format
                                  Equations
                                  Instances For
                                    instance instReprQuery {α : Type} {n : } [Repr α] :
                                    Repr (Query α n)
                                    Equations
                                    def Query.noAgg {T : Type} {n : } (q : Query T n) :
                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem Query.noAggProd {T : Type} [ValueType T] {n n₂ : } {q : Query T n} :
                                        q.noAgg∀ {n₁ : } {q₁ : Query T n₁} {q₂ : Query T n₂} {hn : n₁ + n₂ = n}, q = q₁ × q₂q₁.noAgg q₂.noAgg
                                        @[simp]
                                        theorem Query.noAggSum {T : Type} [ValueType T] {n : } {q : Query T n} :
                                        q.noAgg∀ {q₁ q₂ : Query T n}, q = (q₁ q₂) → q₁.noAgg q₂.noAgg
                                        @[simp]
                                        theorem Query.noAggDiff {T : Type} [ValueType T] {n : } {q : Query T n} :
                                        q.noAgg∀ {q₁ q₂ : Query T n}, q = (q₁ - q₂) → q₁.noAgg q₂.noAgg
                                        @[simp]
                                        theorem Query.noAggProj {T : Type} [ValueType T] {n : } {q : Query T n} :
                                        q.noAgg∀ {m : } {t : Tuple (Term T m) n} {q' : Query T m}, q = Π t q'q'.noAgg
                                        @[simp]
                                        theorem Query.noAggSel {T : Type} [ValueType T] {n : } {q : Query T n} :
                                        q.noAgg∀ {φ : Filter T n} {q' : Query T n}, q = σ φ q'q'.noAgg
                                        @[simp]
                                        theorem Query.noAggDedup {T : Type} [ValueType T] {n : } {q : Query T n} :
                                        q.noAgg∀ {q' : Query T n}, q = ε q'q'.noAgg
                                        def Query.arity {T : Type} {n : } :
                                        Query T n
                                        Equations
                                        Instances For
                                          @[irreducible]
                                          def Query.evaluate {T : Type} [ValueType T] {n : } (q : Query T n) (d : Database T) :
                                          Equations
                                          Instances For