@[match_pattern]
Equations
Instances For
@[match_pattern]
Equations
Instances For
Equations
- Iris.ProofMode.parseName? (Lean.Expr.mdata { entries := [(`name, Lean.DataValue.ofName name), (`uniq, Lean.DataValue.ofName uniq)] } e) = some (name, uniq, e)
- Iris.ProofMode.parseName? x✝ = none
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
inductive
Iris.ProofMode.Hyps
{u : Lean.Level}
{prop : Q(Type u)}
(bi : Q(BI «$prop»))
(e : Q(«$prop»))
:
- emp {u : Lean.Level} {prop : Q(Type u)} {bi : Q(BI «$prop»)} {e : Q(«$prop»)} : «$e» =Q iprop(emp) → Hyps bi e
- sep {u : Lean.Level} {prop : Q(Type u)} {bi : Q(BI «$prop»)} {e : Q(«$prop»)} (tm elhs erhs : Q(«$prop»)) : «$e» =Q iprop(«$elhs» ∗ «$erhs») → (lhs : Hyps bi elhs) → (rhs : Hyps bi erhs) → Hyps bi e
- hyp {u : Lean.Level} {prop : Q(Type u)} {bi : Q(BI «$prop»)} {e : Q(«$prop»)} (tm : Q(«$prop»)) (name uniq : Lean.Name) (p : Q(Bool)) (ty : Q(«$prop»)) : «$e» =Q iprop(□?«$p» «$ty») → Hyps bi e
Instances For
instance
Iris.ProofMode.instInhabitedHyps
{a✝ : Lean.Level}
{arg✝ : Q(Type a✝)}
{bi : Q(BI $arg✝)}
{s : Q($arg✝)}
:
Equations
- Iris.ProofMode.instInhabitedHyps = { default := Iris.ProofMode.Hyps.emp ⋯ }
def
Iris.ProofMode.Hyps.tm
{a✝ : Lean.Level}
{prop : Q(Type a✝)}
{bi : Q(BI «$prop»)}
{s : Q(«$prop»)}
:
Hyps bi s → Q(«$prop»)
Equations
- (Iris.ProofMode.Hyps.emp x_1).tm = s
- (Iris.ProofMode.Hyps.sep tm elhs erhs x_1 lhs rhs).tm = tm
- (Iris.ProofMode.Hyps.hyp tm name uniq p ty x_1).tm = tm
Instances For
def
Iris.ProofMode.Hyps.mkEmp
{u : Lean.Level}
{prop : Q(Type u)}
(bi : Q(BI «$prop»))
(e : Q(«$prop») := q(iprop(emp)))
:
Hyps bi e
Equations
Instances For
def
Iris.ProofMode.Hyps.mkSep
{u : Lean.Level}
{prop : Q(Type u)}
{bi : Q(BI «$prop»)}
{elhs erhs : Q(«$prop»)}
(lhs : Hyps bi elhs)
(rhs : Hyps bi erhs)
(e : Q(«$prop») := q(iprop(«$elhs» ∗ «$erhs»)))
:
Hyps bi e
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Iris.ProofMode.isTrue p = (Lean.Expr.constName! p == `Bool.true)
Instances For
def
Iris.ProofMode.mkIntuitionisticIf
{u : Lean.Level}
{prop : Q(Type u)}
(_bi : Q(BI «$prop»))
(p : Q(Bool))
(e : Q(«$prop»))
:
Equations
Instances For
def
Iris.ProofMode.Hyps.mkHyp
{u : Lean.Level}
{prop : Q(Type u)}
(bi : Q(BI «$prop»))
(name uniq : Lean.Name)
(p : Q(Bool))
(ty : Q(«$prop»))
(e : Q(«$prop») := q(iprop(□?«$p» «$ty»)))
:
Hyps bi e
Equations
- Iris.ProofMode.Hyps.mkHyp bi name uniq p ty e = Iris.ProofMode.Hyps.hyp (Iris.ProofMode.mkIntuitionisticIf bi p (Iris.ProofMode.mkNameAnnotation name uniq ty)).val name uniq p ty ⋯
Instances For
partial def
Iris.ProofMode.parseHyps?
{u : Lean.Level}
{prop : Q(Type u)}
(bi : Q(BI «$prop»))
(expr : Lean.Expr)
:
@[reducible, inline]
This is the same as Entails, but it takes a BI instead.
This constant is used to detect iris proof goals.
Equations
Instances For
- u : Lean.Level
- prop : Q(Type udummy._uniq.21)
- bi : Q(BI unknown_1)
- e : Q(unknown_1)
- goal : Q(unknown_1)
Instances For
Equations
- Iris.ProofMode.isIrisGoal expr = expr.isAppOfArity `Iris.ProofMode.Entails' 4
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is only used for display purposes, so that we can render context variables that appear
to have type A : PROP even though PROP is not a type.
Equations
Instances For
def
Iris.ProofMode.addLocalVarInfo
(stx : Lean.Syntax)
(lctx : Lean.LocalContext)
(expr : Lean.Expr)
(expectedType? : Option Lean.Expr)
(isBinder : Bool := false)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Iris.ProofMode.addHypInfo
{u : Lean.Level}
(stx : Lean.Syntax)
(name uniq : Lean.Name)
(prop : Q(Type u))
(ty : Q(«$prop»))
(isBinder : Bool := false)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Iris.ProofMode.Hyps.findWithInfo
{s : Lean.Expr}
{u : Lean.Level}
{prop : Q(Type u)}
{bi : Q(BI «$prop»)}
(hyps : Hyps bi s)
(name : Lean.Ident)
:
Equations
- One or more equations did not get rendered due to their size.