Documentation

Iris.ProofMode.Tactics.Remove

structure Iris.ProofMode.RemoveHyp {u : Lean.Level} {prop : Q(Type u)} (bi : Q(BI «$prop»)) (e : Q(«$prop»)) :
  • e' : Q(«$prop»)
  • hyps' : Hyps bi self.e'
  • out : Q(«$prop»)
  • out' : Q(«$prop»)
  • p : Q(Bool)
  • eq : unknown_1 =Q iprop(□?unknown_2 unknown_3)
  • pf : Q(«$e» ⊣⊢ unknown_1 ∗ unknown_2)
Instances For
    instance Iris.ProofMode.instInhabitedRemoveHyp {a✝ : Lean.Level} {a✝¹ : Q(Type a✝)} {a✝² : Q(BI $a✝)} {a✝³ : Q($a✝)} :
    Inhabited (RemoveHyp a✝² a✝³)
    Equations
    inductive Iris.ProofMode.RemoveHypCore {u : Lean.Level} {prop : Q(Type u)} (bi : Q(BI «$prop»)) (e : Q(«$prop»)) (α : Type) :
    Instances For
      theorem Iris.ProofMode.remove_l {PROP : Type u_1} [BI PROP] {P P' Q R : PROP} (h : P ⊣⊢ P' ∗ R) :
      P ∗ Q ⊣⊢ (P' ∗ Q) ∗ R
      theorem Iris.ProofMode.remove_r {PROP : Type u_1} [BI PROP] {P Q Q' R : PROP} (h : Q ⊣⊢ Q' ∗ R) :
      P ∗ Q ⊣⊢ (P ∗ Q') ∗ R
      theorem Iris.ProofMode.intuitionistically_sep_dup {PROP : Type u_1} [BI PROP] {P : PROP} :
      def Iris.ProofMode.Hyps.removeCore {m : Type → Type u_1} {u : Lean.Level} {α : Type} [Monad m] {prop : Q(Type u)} (bi : Q(BI «$prop»)) (rp : Bool) (check : Lean.Name → Lean.Name → Q(Bool) → Q(«$prop») → m (Option α)) {e : Q(«$prop»)} :
      Hyps bi e → m (RemoveHypCore bi e α)

      If rp is true, the hyp will be removed even if it is in the intuitionistic context.

      Equations
      Instances For
        theorem Iris.ProofMode.sep_emp_rev {PROP : Type u_1} [BI PROP] {P : PROP} :
        P ⊣⊢ P ∗ emp
        theorem Iris.ProofMode.emp_sep_rev {PROP : Type u_1} [BI PROP] {P : PROP} :
        P ⊣⊢ emp ∗ P
        def Iris.ProofMode.Hyps.removeG {m : Type → Type u_1} {u : Lean.Level} {α : Type} [Monad m] {prop : Q(Type u)} {bi : Q(BI «$prop»)} {e : Q(Prop)} (rp : Bool) (hyps : Hyps bi e) (check : Lean.Name → Lean.Name → Q(Bool) → Q(«$prop») → m (Option α)) :
        m (Option (α × RemoveHyp bi e))
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Iris.ProofMode.Hyps.remove {u : Lean.Level} {prop : Q(Type u)} {bi : Q(BI «$prop»)} {e : Q(«$prop»)} (rp : Bool) (hyps : Hyps bi e) (uniq : Lean.Name) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For