Documentation

Logic.Vorspiel.Meta

inductive DbgResult (α : Type u) :
αType u
Instances For
    instance instToStringDbgResult {α : Type u_1} (a : α) :
    Equations
    def Qq.rflQ {u : Lean.Level} {α : Q(Sort u)} (a : Q(«$α»)) :
    Q(«$a» = «$a»)
    Equations
    Instances For
      def Qq.decideTQ (p : Q(Prop)) :
      Lean.MetaM Q(«$p»)
      Equations
      Instances For
        def Qq.finQVal {n : Q()} (e : Q(Fin «$n»)) :
        Equations
        Instances For
          def Qq.natAppFunQ (f : ) (e : Q()) :
          Equations
          Instances For
            def Qq.inferSortQ' (e : Lean.Expr) :
            Lean.MetaM ((u : Lean.Level) × (α : let u := u; Q(Sort u)) × Q(«$α»))
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Qq.checkSortQ' (e : Lean.Expr) :
              Lean.MetaM (Option ((u : Lean.Level) × let u := u; Q(Sort u)))
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Qq.inferPropQ' (e : Lean.Expr) :
                Lean.MetaM ((p : Q(Prop)) × Q(«$p»))
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  Instances For
                    def Qq.inferSortQOfUniverse' {u : Lean.Level} (e : Lean.Expr) (ty : let u := u; Q(Sort u)) :
                    Lean.MetaM (Option Q(«$ty»))
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Qq.MditeQ {u : Lean.Level} {α : Q(Sort u)} (c : Q(Prop)) (dec : Q(Decidable «$c»)) (t : Lean.MetaM Q(«$c»«$α»)) (e : Lean.MetaM Q(¬«$c»«$α»)) :
                      Lean.MetaM Q(«$α»)
                      Equations
                      • Qq.MditeQ c dec t e = do let tt let ee pure q(if h : «$c» then «$t» h else «$e» h)
                      Instances For
                        def Qq.BEqQ {u : Lean.Level} {α : Q(Sort u)} {a : Q(«$α»)} {b : Q(«$α»)} (h : (a == b) = true) :
                        Q(«$a» = «$b»)
                        Equations
                        Instances For
                          def Qq.eqQUnsafe {u : Lean.Level} {α : Q(Sort u)} (a : Q(«$α»)) (b : Q(«$α»)) :
                          Q(«$a» = «$b»)
                          Equations
                          Instances For
                            def Qq.toQList {u : Lean.Level} {α : Q(Type u)} :
                            List Q(«$α»)Q(List «$α»)
                            Equations
                            Instances For
                              partial def Qq.ofQList {u : Lean.Level} {α : Q(Type u)} (l : Q(List «$α»)) :
                              Lean.MetaM (List Q(«$α»))
                              Equations
                              Instances For
                                Equations
                                Instances For
                                  theorem Qq.List.mem_of_eq {α : Type u} {a : α} {b : α} {l : List α} (h : a = b) :
                                  a b :: l
                                  theorem Qq.List.mem_of_mem {α : Type u} {a : α} {b : α} {l : List α} (h : a l) :
                                  a b :: l
                                  theorem Qq.List.cases_of_mem_cons {α : Type u} {p : αProp} {a : α} {a' : α} {l : List α} (h : a' a :: l) (hl : a'l, p a') (ha : p a) :
                                  p a'
                                  def Qq.memQList? {u : Lean.Level} {α : Q(Type u)} (a : Q(«$α»)) (l : List Q(«$α»)) :
                                  Lean.MetaM (Option (let a_1 := Qq.toQList l; let toQList_1 := Qq.toQList l; Q(«$a» «$toQList_1»)))
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  • Qq.memQList? a [] = pure none
                                  Instances For
                                    theorem Qq.List.cons_congr {α : Type u} {a : α} {b : α} {l : List α} {k : List α} (ha : a = b) (hl : l = k) :
                                    a :: l = b :: k
                                    def Qq.resultList {u : Lean.Level} {α : Q(Type u)} (res : (a : Q(«$α»)) → Lean.MetaM ((res : Q(«$α»)) × Q(«$a» = «$res»))) (l : List Q(«$α»)) :
                                    Lean.MetaM ((lres : List Q(«$α»)) × let a := Qq.toQList lres; let a_1 := Qq.toQList l; let toQList_1 := Qq.toQList l; let toQList_2 := Qq.toQList lres; Q(«$toQList_1» = «$toQList_2»))
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    • Qq.resultList res [] = pure [], q()
                                    Instances For
                                      def Qq.funResultList {u : Lean.Level} {α : Q(Type u)} {β : Q(Type u)} (f : Q(«$α»«$β»)) (res : (a : Q(«$α»)) → Lean.MetaM ((res : Q(«$β»)) × Q(«$f» «$a» = «$res»))) (l : List Q(«$α»)) :
                                      Lean.MetaM ((lres : List Q(«$β»)) × let a := Qq.toQList lres; let a_1 := Qq.toQList l; let toQList_1 := Qq.toQList l; let toQList_2 := Qq.toQList lres; Q(List.map «$f» «$toQList_1» = «$toQList_2»))
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      • Qq.funResultList f res [] = pure [], q()
                                      Instances For
                                        structure Qq.Result {u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) :
                                        • res : Q(«$α»)
                                        • eq : Q(«$e» = unknown_1)
                                        Instances For
                                          structure Qq.ResultFun {u : Lean.Level} {v : Lean.Level} {α : Q(Type u)} {β : Q(Type v)} (f : Q(«$α»«$β»)) (e : Q(«$α»)) :
                                          • res : Q(«$β»)
                                          • eq : Q(«$f» «$e» = unknown_1)
                                          Instances For
                                            def Qq.Result.refl {u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) :
                                            Equations
                                            Instances For
                                              def Qq.ResultFun.refl {u : Lean.Level} {v : Lean.Level} {α : Q(Type u)} {β : Q(Type v)} (f : Q(«$α»«$β»)) (e : Q(«$α»)) :
                                              Equations
                                              Instances For
                                                theorem Qq.compVecEmpty {α : Type u} {β : Type v} (f : αβ) :
                                                f ![] = ![]
                                                theorem Qq.compVecCons {α : Type u} {β : Type v} (f : αβ) {n : } {a : α} {as : Fin nα} {b : β} {bs : Fin nβ} (hb : f a = b) (hbs : f as = bs) :
                                                f (a :> as) = b :> bs
                                                theorem Qq.vecConsExt {α : Type u} {n : } {a : α} {as : Fin nα} {b : α} {bs : Fin nα} (hb : a = b) (hbs : as = bs) :
                                                a :> as = b :> bs
                                                def Qq.vecFold {u : Lean.Level} (α : Q(Type u)) {n : } :
                                                (Fin nQ(«$α»))Q(Fin «$n»«$α»)
                                                Equations
                                                Instances For
                                                  def Qq.vecFoldDep {u : Lean.Level} {n : } (α : Q(Fin «$n»Sort u)) :
                                                  ((i : Fin n) → Q(«$α» «$i»))Q((i : Fin «$n») → «$α» i)
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  • Qq.vecFoldDep x_3 x_4 = q(finZeroElim)
                                                  Instances For
                                                    def Qq.vecUnfold {u : Lean.Level} (α : Q(Type u)) (n : ) :
                                                    Q(Fin «$n»«$α»)Lean.MetaM (Fin nQ(«$α»))
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    • Qq.vecUnfold α 0 x_2 = pure finZeroElim
                                                    Instances For
                                                      theorem Qq.eq_cons_app_succ_of_eq {n : } {α : Type u} {a : α} {b : α} {as : Fin nα} {i : Fin n} (has : as i = b) :
                                                      (a :> as) i.succ = b
                                                      partial def Qq.vectorGet {u : Lean.Level} {α : Q(Type u)} {n : } (l : Q(Fin «$n»«$α»)) (i : Fin n) :
                                                      Lean.MetaM ((a : Q(«$α»)) × Q(«$l» «$i» = «$a»))
                                                      partial def Qq.mapVector {u : Lean.Level} {v : Lean.Level} {α : Q(Type u)} {β : Q(Type v)} (r : Q(«$α»)Lean.MetaM Q(«$β»)) (n : Q()) (l : Q(Fin «$n»«$α»)) :
                                                      Lean.MetaM Q(Fin «$n»«$β»)
                                                      partial def Qq.resultVectorOfResult {u : Lean.Level} {α : Q(Type u)} (r : (e : Q(«$α»)) → Lean.MetaM ((r : Q(«$α»)) × Q(«$e» = «$r»))) (n : Q()) (l : Q(Fin «$n»«$α»)) :
                                                      Lean.MetaM ((l' : Q(Fin «$n»«$α»)) × Q(«$l» = «$l'»))
                                                      partial def Qq.resultVectorOfResultFun {u : Lean.Level} {v : Lean.Level} {α : Q(Type u)} {β : Q(Type v)} (f : Q(«$α»«$β»)) (r : (e : Q(«$α»)) → Lean.MetaM ((r : Q(«$β»)) × Q(«$f» «$e» = «$r»))) (n : Q()) (l : Q(Fin «$n»«$α»)) :
                                                      Lean.MetaM ((l' : Q(Fin «$n»«$β»)) × Q(«$f» «$l» = «$l'»))
                                                      partial def Qq.vectorCollection {u : Lean.Level} {v : Lean.Level} {w : Lean.Level} {α : Q(Type u)} {β : Q(Type v)} {H : Q(«$α»«$β»Sort w)} (r : (a : Q(«$α»)) → Lean.MetaM ((b : Q(«$β»)) × Q(«$H» «$a» «$b»))) (n : Q()) (l : Q(Fin «$n»«$α»)) :
                                                      Lean.MetaM ((b : Q(Fin «$n»«$β»)) × Q((i : Fin «$n») → «$H» («$l» i) («$b» i)))
                                                      partial def Qq.mapVectorQ {u : Lean.Level} {v : Lean.Level} {α : Q(Type u)} {β : Q(Type v)} (f : Q(«$α»)Lean.MetaM Q(«$β»)) (n : Q()) (l : Q(Fin «$n»«$α»)) :
                                                      Lean.MetaM Q(Fin «$n»«$β»)
                                                      Equations
                                                      Instances For
                                                        partial def Qq.vectorQNthAux {u : Lean.Level} {α : Q(Type u)} (n : Q()) (l : Q(Fin «$n»«$α»)) (i : ) :
                                                        Lean.MetaM Q(«$α»)
                                                        def Qq.vectorQNth {u : Lean.Level} {α : Q(Type u)} (n : Q()) (l : Q(Fin «$n»«$α»)) (i : Q(Fin «$n»)) :
                                                        Lean.MetaM ((a : Q(«$α»)) × Q(«$l» «$i» = «$a»))
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          Equations
                                                          Instances For
                                                            partial def Qq.vectorAppend {u : Lean.Level} {α : Q(Type u)} (n : Q()) (v : Q(Fin «$n»«$α»)) (a : Q(«$α»)) :
                                                            Lean.MetaM ((w : Q(Fin («$n» + 1)«$α»)) × Q(«$v» <: «$a» = «$w»))
                                                            Equations
                                                            Instances For
                                                              Equations
                                                              Instances For
                                                                def List.elemM {m : TypeType v} [inst : Monad m] {α : Type u} (r : ααm Bool) (a : α) :
                                                                List αm Bool
                                                                Equations
                                                                Instances For
                                                                  class ExprNamed (α : Type) :
                                                                  Instances
                                                                    Equations
                                                                    class Denotation {u_1 : Lean.Level} (σ : outParam Q(Type u_1)) (α : Type) :
                                                                    • denote' : Q(«$σ»)Lean.MetaM α
                                                                    • toExpr' : αQ(«$σ»)
                                                                    Instances
                                                                      @[reducible, inline]
                                                                      abbrev Denotation.denote {u_1 : Lean.Level} (σ : Q(Type u_1)) {α : Type} [Denotation σ α] :
                                                                      Q(«$σ»)Lean.MetaM α
                                                                      Equations
                                                                      Instances For
                                                                        @[reducible, inline]
                                                                        abbrev Denotation.toExpr {u_1 : Lean.Level} (σ : Q(Type u_1)) {α : Type} [Denotation σ α] :
                                                                        αQ(«$σ»)
                                                                        Equations
                                                                        Instances For
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          instance Denotation.instFin {n : } :
                                                                          Denotation q(Fin «$n») (Fin n)
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          instance Denotation.list {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} [Denotation σ α] :
                                                                          Denotation q(List «$σ») (List α)
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          @[reducible, inline]
                                                                          abbrev Denotation.denoteₗ {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} (d : Denotation σ α) :
                                                                          Q(List «$σ»)Lean.MetaM (List α)
                                                                          Equations
                                                                          • d.denoteₗ = Denotation.denote'
                                                                          Instances For
                                                                            @[reducible, inline]
                                                                            abbrev Denotation.toExprₗ {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} (d : Denotation σ α) :
                                                                            List αQ(List «$σ»)
                                                                            Equations
                                                                            • d.toExprₗ = Denotation.toExpr'
                                                                            Instances For
                                                                              def Denotation.memList? {u_1 : Lean.Level} {α : Type} {σ : Q(Type u_1)} (d : Denotation σ α) (a : α) (l : List α) :
                                                                              Lean.MetaM (Option (let a_1 := d.toExprₗ l; let a := Denotation.toExpr σ a; let toQList_1 := Qq.toQList (List.map Denotation.toExpr' l); Q(unknown_1 «$toQList_1»)))
                                                                              Equations
                                                                              Instances For
                                                                                def Denotation.listSigmaImpliment {u_1 : Lean.Level} {α : Type} {σ : Q(Type u_1)} (d : Denotation σ α) {p : Q(«$σ»Prop)} (l : List ((a : α) × let a := Denotation.toExpr σ a; Q(«$p» unknown_1))) :
                                                                                Lean.MetaM (let a := d.toExprₗ (List.map Sigma.fst l); let toQList_1 := Qq.toQList (List.map Denotation.toExpr' (List.map Sigma.fst l)); Q(a'«$toQList_1», «$p» a'))
                                                                                Equations
                                                                                • d.listSigmaImpliment [] = pure q()
                                                                                • d.listSigmaImpliment (a, ha :: l) = do let ihd.listSigmaImpliment l pure (id q())
                                                                                Instances For
                                                                                  def Denotation.isDefEq {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} [Denotation σ α] (a₁ : α) (a₂ : α) :
                                                                                  Equations
                                                                                  Instances For
                                                                                    structure Denotation.DEq {u_1 : Lean.Level} (σ : Q(Type u_1)) {α : Type} [Denotation σ α] (a₁ : α) (a₂ : α) :
                                                                                    Instances For
                                                                                      structure Denotation.DEqFun {u_1 : Lean.Level} {u_2 : Lean.Level} {σ : Q(Type u_1)} {τ : Q(Type u_2)} {α : Type} {β : Type} [Denotation σ α] [Denotation τ β] (f : Q(«$σ»«$τ»)) (a : α) (b : β) :
                                                                                      Instances For
                                                                                        def Denotation.DEq.refl {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} [Denotation σ α] (a : α) :
                                                                                        Equations
                                                                                        Instances For
                                                                                          def Denotation.DEq.symm {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} [Denotation σ α] {a₁ : α} {a₂ : α} (h : Denotation.DEq σ a₁ a₂) :
                                                                                          Denotation.DEq σ a₂ a₁
                                                                                          Equations
                                                                                          • h.symm = { expr := let a := h.expr; q() }
                                                                                          Instances For
                                                                                            def Denotation.DEq.trans {u_1 : Lean.Level} {σ : Q(Type u_1)} {α : Type} [Denotation σ α] {a₁ : α} {a₂ : α} {a₃ : α} (h₁ : Denotation.DEq σ a₁ a₂) (h₂ : Denotation.DEq σ a₂ a₃) :
                                                                                            Denotation.DEq σ a₁ a₃
                                                                                            Equations
                                                                                            • h₁.trans h₂ = { expr := let a := h₂.expr; let a_1 := h₁.expr; q() }
                                                                                            Instances For