Documentation

Iris.ProofMode.Expr

@[match_pattern]
Equations
Instances For
    @[match_pattern]
    Equations
    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
          def Iris.ProofMode.Hyps.tm {a✝ : Lean.Level} {prop : Q(Type a✝)} {bi : Q(BI «$prop»)} {s : Q(«$prop»)} :
          Hyps bi sQ(«$prop»)
          Equations
          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
                Instances For
                  def Iris.ProofMode.mkIntuitionisticIf {u : Lean.Level} {prop : Q(Type u)} (_bi : Q(BI «$prop»)) (p : Q(Bool)) (e : Q(«$prop»)) :
                  { A : Q(«$prop») // «$A» =Q iprop(□?«$p» «$e») }
                  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
                    Instances For
                      partial def Iris.ProofMode.parseHyps? {u : Lean.Level} {prop : Q(Type u)} (bi : Q(BI «$prop»)) (expr : Lean.Expr) :
                      Option ((s : Q(«$prop»)) × Hyps bi s)
                      partial def Iris.ProofMode.Hyps.find? {u : Lean.Level} {prop : Q(Type u)} {bi : Q(BI «$prop»)} (name : Lean.Name) {s : Q(«$prop»)} :
                      Hyps bi sOption (Lean.Name × Q(Bool) × Q(«$prop»))
                      @[reducible, inline]
                      abbrev Iris.ProofMode.Entails' {PROP : Type u_1} [BI PROP] :
                      PROPPROPProp

                      This is the same as Entails, but it takes a BI instead. This constant is used to detect iris proof goals.

                      Equations
                      Instances For
                        • prop : Q(Type udummy._uniq.21)
                        • bi : Q(BI unknown_1)
                        • e : Q(unknown_1)
                        • hyps : Hyps self.bi self.e
                        • goal : Q(unknown_1)
                        Instances For
                          Equations
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • { u := u, prop := prop, bi := bi, e := e, hyps := hyps, goal := goal }.strip = q(«$e» «$goal»)
                              Instances For
                                def Iris.ProofMode.HypMarker {PROP : Type u_1} (_A : PROP) :

                                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.
                                      Instances For