Equations
- instToStringDbgResult a = { toString := fun (r : DbgResult α a) => match r with | DbgResult.intro a b a => "🎉 Proof Success! 🎉" }
Equations
- Qq.decideTQ p = do let dec ← Qq.synthInstanceQ q(Decidable «$p») let h : Q(decide «$p» = true) := Qq.rflQ q(true) pure q(⋯)
Instances For
Equations
- Qq.finQVal e = do let val ← Lean.Meta.whnf q(↑«$e») let a ← liftM (Lean.Expr.rawNatLit? val) pure (some a)
Instances For
Equations
- Qq.natAppFunQ f e = do let e ← Lean.Meta.whnf e match Lean.Expr.rawNatLit? e with | some n => Lean.Expr.ofNat q(ℕ) (f n) | x => Lean.throwError (Lean.toMessageData "not ℕ")
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Qq.inferPropQ e = pure e
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(«$α»)
Instances For
Equations
- Qq.eqQUnsafe a b = q(⋯)
Instances For
Equations
- Qq.toQList [] = q([])
- Qq.toQList (a :: v) = let a_1 := Qq.toQList v; let toQList_1 := Qq.toQList v; q(«$a» :: «$toQList_1»)
Instances For
partial def
Qq.ofQList
{u : Lean.Level}
{α : Q(Type u)}
(l : Q(List «$α»))
:
Lean.MetaM (List Q(«$α»))
Equations
- Qq.isStrongEq t s = do let __do_lift ← Lean.Meta.whnf t let __do_lift_1 ← Lean.Meta.whnf s Lean.Meta.isDefEq __do_lift __do_lift_1
Instances For
Equations
- Qq.termEqualTest = Lean.ParserDescr.node `Qq.termEqualTest 1024 (Lean.ParserDescr.symbol "equalTest")
Instances For
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
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.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
Equations
- Qq.Result.refl e = { res := e, eq := q(⋯) }
Instances For
def
Qq.ResultFun.refl
{u : Lean.Level}
{v : Lean.Level}
{α : Q(Type u)}
{β : Q(Type v)}
(f : Q(«$α» → «$β»))
(e : Q(«$α»))
:
Qq.ResultFun f e
Equations
- Qq.ResultFun.refl f e = { res := q(«$f» «$e»), eq := q(⋯) }
Instances For
Equations
- Qq.vecFold α x_2 = q(![])
- Qq.vecFold α v = let ih := Qq.vecFold α fun (x : Fin n) => v x.succ; let a := v 0; let vecFold_1 := Qq.vecFold α fun (x : Fin n) => v x.succ; q(unknown_1 :> «$vecFold_1»)
Instances For
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 n → Q(«$α»))
Equations
- One or more equations did not get rendered due to their size.
- Qq.vecUnfold α 0 x_2 = pure finZeroElim
Instances For
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
- Qq.termDbgmapVectorQ = Lean.ParserDescr.node `Qq.termDbgmapVectorQ 1024 (Lean.ParserDescr.symbol "dbgmapVectorQ")
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
- Qq.termDbgvectorQNth = Lean.ParserDescr.node `Qq.termDbgvectorQNth 1024 (Lean.ParserDescr.symbol "dbgvectorQNth")
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
- Qq.termDbgVectorAppend = Lean.ParserDescr.node `Qq.termDbgVectorAppend 1024 (Lean.ParserDescr.symbol "dbgVectorAppend")
Instances For
Equations
- x.stringLit? = match x with | Lean.Expr.lit (Lean.Literal.strVal s) => some s | x => none
Instances For
- 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
- Denotation.denote σ = Denotation.denote'
Instances For
@[reducible, inline]
abbrev
Denotation.toExpr
{u_1 : Lean.Level}
(σ : Q(Type u_1))
{α : Type}
[Denotation σ α]
:
α → Q(«$σ»)
Equations
- Denotation.toExpr σ = Denotation.toExpr'
Instances For
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.
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]
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
- d.memList? a l = Qq.memQList? (Denotation.toExpr σ a) (List.map Denotation.toExpr' l)
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
Instances For
def
Denotation.isDefEq
{u_1 : Lean.Level}
{σ : Q(Type u_1)}
{α : Type}
[Denotation σ α]
(a₁ : α)
(a₂ : α)
:
Equations
- Denotation.isDefEq a₁ a₂ = Lean.Meta.isDefEq (Denotation.toExpr σ a₁) (Denotation.toExpr σ a₂)
Instances For
structure
Denotation.DEq
{u_1 : Lean.Level}
(σ : Q(Type u_1))
{α : Type}
[Denotation σ α]
(a₁ : α)
(a₂ : α)
:
- expr : let a := Denotation.toExpr σ a₂; let a_1 := Denotation.toExpr σ a₁; Q(unknown_1 = unknown_2)
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 : β)
:
- expr : let a_1 := Denotation.toExpr τ b; let a := Denotation.toExpr σ a; Q(«$f» unknown_1 = unknown_2)
Instances For
def
Denotation.DEq.refl
{u_1 : Lean.Level}
{σ : Q(Type u_1)}
{α : Type}
[Denotation σ α]
(a : α)
:
Denotation.DEq σ a a
Equations
- Denotation.DEq.refl a = { expr := q(⋯) }
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(⋯) }